Not everyone has <unistd.h>, some files need <io.h> too (msvc).
diff --git a/libs/port/pread.c b/libs/port/pread.c
index 81f219d..97512cc 100644
--- a/libs/port/pread.c
+++ b/libs/port/pread.c
@@ -22,9 +22,14 @@
#include "wine/port.h"
#include <errno.h>
+#include <stdio.h>
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
+#ifdef HAVE_IO_H
+# include <io.h>
+#endif
+
/* FIXME: this is not thread-safe */
diff --git a/libs/port/pwrite.c b/libs/port/pwrite.c
index 3fa8672..0fd5233 100644
--- a/libs/port/pwrite.c
+++ b/libs/port/pwrite.c
@@ -22,9 +22,13 @@
#include "wine/port.h"
#include <errno.h>
+#include <stdio.h>
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
+#ifdef HAVE_IO_H
+# include <io.h>
+#endif
/* FIXME: this is not thread-safe */
diff --git a/libs/wpp/preproc.c b/libs/wpp/preproc.c
index 6c2f4d68..703faf0 100644
--- a/libs/wpp/preproc.c
+++ b/libs/wpp/preproc.c
@@ -28,6 +28,9 @@
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
+#ifdef HAVE_IO_H
+# include <io.h>
+#endif
#include "wpp_private.h"
diff --git a/programs/wineconsole/curses.c b/programs/wineconsole/curses.c
index 0f32d93..a5c3acd 100644
--- a/programs/wineconsole/curses.c
+++ b/programs/wineconsole/curses.c
@@ -42,7 +42,9 @@
#include <ncurses.h>
#endif
#undef KEY_EVENT /* avoid redefinition warning */
+#ifdef HAVE_UNISTD_H
#include <unistd.h>
+#endif
#include <windef.h>
#include <winbase.h>
#include <winnls.h>
diff --git a/programs/winedbg/ext_debugger.c b/programs/winedbg/ext_debugger.c
index 6c913b0..a65485d 100644
--- a/programs/winedbg/ext_debugger.c
+++ b/programs/winedbg/ext_debugger.c
@@ -21,7 +21,9 @@
#include "config.h"
#include "wine/port.h"
-#include <unistd.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
#include <errno.h>
#include <stdlib.h>
#include <stdio.h>
diff --git a/programs/winedbg/gdbproxy.c b/programs/winedbg/gdbproxy.c
index 54254df..c9b95ad 100644
--- a/programs/winedbg/gdbproxy.c
+++ b/programs/winedbg/gdbproxy.c
@@ -41,7 +41,9 @@
#endif
#include <netinet/in.h>
#include <netinet/tcp.h>
-#include <unistd.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
#include "windef.h"
#include "winbase.h"
diff --git a/programs/winedbg/msc.c b/programs/winedbg/msc.c
index ed7781a..8b074f5 100644
--- a/programs/winedbg/msc.c
+++ b/programs/winedbg/msc.c
@@ -33,7 +33,9 @@
#include <stdlib.h>
#include <string.h>
-#include <unistd.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
#ifndef PATH_MAX
#define PATH_MAX MAX_PATH
#endif
diff --git a/programs/winedbg/source.c b/programs/winedbg/source.c
index 4b72975..559bc5f 100644
--- a/programs/winedbg/source.c
+++ b/programs/winedbg/source.c
@@ -30,7 +30,9 @@
#include <sys/stat.h>
#include <limits.h>
#include <string.h>
-#include <unistd.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
#ifndef PATH_MAX
#define PATH_MAX MAX_PATH
#endif
diff --git a/programs/winedbg/stabs.c b/programs/winedbg/stabs.c
index 52822e9..b4a69c3 100644
--- a/programs/winedbg/stabs.c
+++ b/programs/winedbg/stabs.c
@@ -42,7 +42,9 @@
#include <limits.h>
#include <stdlib.h>
#include <string.h>
-#include <unistd.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
#include <stdio.h>
#ifndef PATH_MAX
#define PATH_MAX MAX_PATH
diff --git a/programs/winedbg/types.c b/programs/winedbg/types.c
index d816110..2eb2ddd 100644
--- a/programs/winedbg/types.c
+++ b/programs/winedbg/types.c
@@ -29,7 +29,9 @@
#include <sys/stat.h>
#include <limits.h>
#include <string.h>
-#include <unistd.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
#include "debugger.h"