diff --git a/src/iodine.c b/src/iodine.c
index f238a48..f57be41 100644
--- a/src/iodine.c
+++ b/src/iodine.c
@@ -28,7 +28,7 @@
 
 #ifdef WINDOWS32
 #include "windows.h"
-#include <winsock.h>
+#include <winsock2.h>
 #else
 #include <arpa/nameser.h>
 #ifdef DARWIN
diff --git a/src/iodined.c b/src/iodined.c
index 7180207..08b0530 100644
--- a/src/iodined.c
+++ b/src/iodined.c
@@ -29,7 +29,7 @@
 
 #ifdef WINDOWS32
 #include "windows.h"
-#include <winsock.h>
+#include <winsock2.h>
 #else
 #include <arpa/nameser.h>
 #ifdef DARWIN
diff --git a/src/osflags b/src/osflags
index ce423c6..fc6da1c 100755
--- a/src/osflags
+++ b/src/osflags
@@ -20,7 +20,7 @@ link)
 	;;
 cflags)
 	case $1 in
-		BeOS | windows32)
+		BeOS)
 			echo '-Dsocklen_t=int';
 		;;
 	esac
diff --git a/src/tun.c b/src/tun.c
index c83c1e2..d74ec49 100644
--- a/src/tun.c
+++ b/src/tun.c
@@ -25,7 +25,7 @@
 #include <fcntl.h>
 
 #ifdef WINDOWS32
-#include <winsock.h>
+#include <winsock2.h>
 #include <winioctl.h>
 #include "windows.h"
 
diff --git a/src/user.c b/src/user.c
index 8c3bb40..b15665b 100644
--- a/src/user.c
+++ b/src/user.c
@@ -25,7 +25,7 @@
 #include <fcntl.h>
 
 #ifdef WINDOWS32
-#include <winsock.h>
+#include <winsock2.h>
 #else
 #include <err.h>
 #include <arpa/inet.h>
diff --git a/src/windows.h b/src/windows.h
index 7f493f0..f930855 100644
--- a/src/windows.h
+++ b/src/windows.h
@@ -22,6 +22,7 @@ typedef unsigned int in_addr_t;
 #include <windows.h>
 #include <windns.h>
 #include <winsock2.h>
+#include <ws2tcpip.h>
 #include <iphlpapi.h>
 
 #define T_A DNS_TYPE_A