#include "wx/wxprec.h"
 
 #ifndef WX_PRECOMP
-    #ifdef __WXMSW__
-        #include "wx/msw/missing.h"
-    #endif
     #include "wx/intl.h"
     #include "wx/log.h"
     #include "wx/utils.h"
 
 #if wxUSE_WCHAR_T
 
-#ifdef __WINDOWS__
-    #include "wx/msw/private.h"
-#endif
-
 #ifndef __WXWINCE__
 #include <errno.h>
 #endif
 #include <stdlib.h>
 
 #if defined(__WIN32__) && !defined(__WXMICROWIN__)
+    #include "wx/msw/private.h"
+    #include "wx/msw/missing.h"
     #define wxHAVE_WIN32_MB2WC
 #endif
 
 
 #include "wx/cursor.h"
 
 #ifndef WX_PRECOMP
-    #include "wx/msw/missing.h" // IDC_HAND
     #include "wx/utils.h"
     #include "wx/app.h"
     #include "wx/bitmap.h"
 #endif
 
 #include "wx/msw/private.h"
+#include "wx/msw/missing.h" // IDC_HAND
 
 // define functions missing in MicroWin
 #ifdef __WXMICROWIN__
 
 #include "wx/thread.h"
 
 #ifndef WX_PRECOMP
-    #include "wx/msw/missing.h"
     #include "wx/intl.h"
     #include "wx/app.h"
     #include "wx/module.h"
 #include "wx/scopeguard.h"
 
 #include "wx/msw/private.h"
+#include "wx/msw/missing.h"
 #include "wx/msw/seh.h"
 
 #include "wx/except.h"
 
 #include "wx/toplevel.h"
 
 #ifndef WX_PRECOMP
-    #include "wx/msw/missing.h"
     #include "wx/app.h"
     #include "wx/dialog.h"
     #include "wx/string.h"
     #if _WIN32_WCE < 400 || !defined(__WINCE_STANDARDSDK__)
         #include <aygshell.h>
     #endif
-    #include "wx/msw/wince/missing.h"
 #endif
 
 #include "wx/msw/winundef.h"
+#include "wx/msw/missing.h"
 
 #include "wx/display.h"
 
 
 #endif
 
 #ifndef WX_PRECOMP
-    #include "wx/msw/missing.h"     // CHARSET_HANGUL
     #include "wx/utils.h"
     #include "wx/app.h"
     #include "wx/intl.h"
 #include "wx/confbase.h"        // for wxExpandEnvVars()
 
 #include "wx/msw/private.h"     // includes <windows.h>
+#include "wx/msw/missing.h"     // for CHARSET_HANGUL
 
 #if defined(__CYGWIN__)
     //CYGWIN gives annoying warning about runtime stuff if we don't do this