diff --git a/src/win/conpty.cc b/src/win/conpty.cc
index 47af75c..0d44cf9 100644
--- a/src/win/conpty.cc
+++ b/src/win/conpty.cc
@@ -30,13 +30,26 @@ extern "C" void init(v8::Local<v8::Object>);
 #ifndef PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE
 #define PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE \
   ProcThreadAttributeValue(22, FALSE, TRUE, FALSE)
+#endif
 
+#ifndef HPCON
 typedef VOID* HPCON;
+#endif
+
+#ifndef PFNCREATEPSEUDOCONSOLE
 typedef HRESULT (__stdcall *PFNCREATEPSEUDOCONSOLE)(COORD c, HANDLE hIn, HANDLE hOut, DWORD dwFlags, HPCON* phpcon);
+#endif
+
+#ifndef PFNRESIZEPSEUDOCONSOLE
 typedef HRESULT (__stdcall *PFNRESIZEPSEUDOCONSOLE)(HPCON hpc, COORD newSize);
+#endif
+
+#ifndef PFNCLEARPSEUDOCONSOLE
 typedef HRESULT (__stdcall *PFNCLEARPSEUDOCONSOLE)(HPCON hpc);
-typedef void (__stdcall *PFNCLOSEPSEUDOCONSOLE)(HPCON hpc);
+#endif
 
+#ifndef PFNCLOSEPSEUDOCONSOLE
+typedef void (__stdcall *PFNCLOSEPSEUDOCONSOLE)(HPCON hpc);
 #endif
 
 struct pty_baton {
