Patch by Mark Hammond to avoid certain header files on Windows/CE.
diff --git a/Modules/getbuildinfo.c b/Modules/getbuildinfo.c
index 49793b8..35da3f7 100644
--- a/Modules/getbuildinfo.c
+++ b/Modules/getbuildinfo.c
@@ -4,7 +4,9 @@
 #include "macbuildno.h"
 #endif
 
+#ifndef DONT_HAVE_STDIO_H
 #include <stdio.h>
+#endif
 
 #ifndef DATE
 #ifdef __DATE__
diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c
index 11f72f5..c18d979 100644
--- a/Modules/selectmodule.c
+++ b/Modules/selectmodule.c
@@ -48,7 +48,9 @@
 extern void bzero();
 #endif
 
+#ifndef DONT_HAVE_SYS_TYPES_H
 #include <sys/types.h>
+#endif
 
 #if defined(PYOS_OS2)
 #include <sys/time.h>
diff --git a/Objects/fileobject.c b/Objects/fileobject.c
index b0eb332..867b11a 100644
--- a/Objects/fileobject.c
+++ b/Objects/fileobject.c
@@ -34,7 +34,9 @@
 #include "Python.h"
 #include "structmember.h"
 
+#ifndef DONT_HAVE_SYS_TYPES_H
 #include <sys/types.h>
+#endif /* DONT_HAVE_SYS_TYPES_H */
 
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
@@ -62,7 +64,9 @@
 
 #define BUF(v) PyString_AS_STRING((PyStringObject *)v)
 
+#ifndef DONT_HAVE_ERRNO_H
 #include <errno.h>
+#endif
 
 typedef struct {
 	PyObject_HEAD
@@ -441,11 +445,16 @@
 #ifndef DONT_HAVE_FSTAT
 #define HAVE_FSTAT
 
+#ifndef DONT_HAVE_SYS_TYPES_H
 #include <sys/types.h>
-#include <sys/stat.h>
-
 #endif
 
+#ifndef DONT_HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+
+#endif /* DONT_HAVE_FSTAT */
+
 #if BUFSIZ < 8192
 #define SMALLCHUNK 8192
 #else