#define wxPATH_SEP_MAC        wxT(";")
 
 // platform independent versions
-#if defined(__UNIX__) && !defined(__GNUWIN32__)
+#if defined(__UNIX__) && !defined(__CYGWIN__)
   #define wxFILE_SEP_PATH     wxFILE_SEP_PATH_UNIX
   #define wxPATH_SEP          wxPATH_SEP_UNIX
 #elif defined(__MAC__)
   #define wxFILE_SEP_PATH     wxFILE_SEP_PATH_MAC
   #define wxPATH_SEP          wxPATH_SEP_MAC
-#elif defined(__GNUWIN32__) // Cygwin
+#elif defined(__CYGWIN__) // Cygwin
   #define wxFILE_SEP_PATH     wxFILE_SEP_PATH_DOS
   #define wxPATH_SEP          wxPATH_SEP_UNIX
 #else   // Windows and OS/2
 
     //
     // note that it must be included after <windows.h>
     #ifdef __GNUWIN32__
-        #include <sys/cygwin.h>
+        #ifdef __CYGWIN__
+            #include <sys/cygwin.h>
+        #endif
         #include <wchar.h>
         #ifndef __TWIN32__
             #include <sys/unistd.h>
         }
 #endif // __DJGPP__
 
-#ifdef __GNUWIN32__
+#ifdef __CYGWIN__
         // another example of DOS/Unix mix (Cygwin)
         wxString pathUnix = buf;
         cygwin_conv_to_full_win32_path(pathUnix, buf);
-#endif // __GNUWIN32__
+#endif // __CYGWIN__
 
         // finally convert the result to Unicode if needed
 #if wxUSE_UNICODE && !defined(HAVE_WGETCWD)
 
 #endif
 
 #ifndef WX_PRECOMP
+    #include "wx/utils.h"
     #include "wx/gdicmn.h"
 #endif
 
 
     #endif
 #endif  //GNUWIN32
 
-#if defined(__GNUWIN32__) && !defined(__TWIN32__)
+#if defined(__CYGWIN__) && !defined(__TWIN32__)
     #include <sys/unistd.h>
     #include <sys/stat.h>
     #include <sys/cygwin.h> // for cygwin_conv_to_full_win32_path()
     if ( strDir.Last() != wxT('/') )
       strDir << wxT('/');
 
-    #ifdef __GNUWIN32__
+    #ifdef __CYGWIN__
       // Cygwin returns unix type path but that does not work well
       static wxChar windowsPath[MAX_PATH];
       cygwin_conv_to_full_win32_path(strDir, windowsPath);