diff --git a/SystemTools.cxx b/SystemTools.cxx
index 79bcb9e3b29b1b2cb47ba091d7dfd06855f2b3d0..11bbf2da1b362103deebee39ffd7797adafb6ad9 100644
--- a/SystemTools.cxx
+++ b/SystemTools.cxx
@@ -58,6 +58,11 @@
 #include <termios.h>
 #endif
 
+// Windows API.  Some parts used even on cygwin.
+#if defined(_WIN32)
+# include <windows.h>
+#endif
+
 // This is a hack to prevent warnings about these functions being
 // declared but not referenced.
 #if defined(__sgi) && !defined(__GNUC__)
@@ -82,7 +87,6 @@ public:
 
 #if defined(_WIN32) && (defined(_MSC_VER) || defined(__BORLANDC__) || defined(__MINGW32__))
 #include <io.h>
-#include <windows.h>
 #include <direct.h>
 #define _unlink unlink
 inline int Mkdir(const char* dir)