diff --git a/console/interface.c b/console/interface.c
index e1d8ed03ab61d228156976eaa6652b3d1994cee2..afe646b7f220750b86b14d8ea59b5e6130ea0183 100644
--- a/console/interface.c
+++ b/console/interface.c
@@ -10,7 +10,7 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "windows.h"
+#include "windef.h"
 #include "console.h"
 #include "config.h"
 
diff --git a/console/ncurses.c b/console/ncurses.c
index af1fafd76fbb21d18e7a0eafbef04c48455e3d34..15191c7d0a1f1f4687fd5482892b4a73637e3533 100644
--- a/console/ncurses.c
+++ b/console/ncurses.c
@@ -1,6 +1,7 @@
 /* ncurses.c */
 /* Copyright 1999 - Joseph Pranevich */
 
+#include <stdio.h>
 #include "config.h"
 #include "console.h"
 
diff --git a/console/tty.c b/console/tty.c
index 2dc7feceb10d0c0d5c01adf7975b9859fe525234..7898caab0ca56f9d03e3092eed7333f282769e8c 100644
--- a/console/tty.c
+++ b/console/tty.c
@@ -14,7 +14,6 @@
 #include "console.h"
 #include "config.h"
 #include "wintypes.h" /* FALSE */
-#include "windows.h" /* _lread16() */
 void TTY_Start()
 {
    /* This should be the root driver so we can ignore anything
diff --git a/console/xterm.c b/console/xterm.c
index 87e60f9462dbbcc9bf6e5dd2879e4c672e9ac275..6c846ab9fd1dd2d6f23f7756e9bf0e7b6588a099 100644
--- a/console/xterm.c
+++ b/console/xterm.c
@@ -8,6 +8,7 @@
    It does not currently support changing the title bar.
 */
 
+#include <stdio.h>
 #include <signal.h>
 #include <sys/ioctl.h>
 #include <fcntl.h>
@@ -15,7 +16,6 @@
 #include <termios.h>
 #include <errno.h>
 
-#include "windows.h"
 #include "console.h"
 #include "options.h"
 #include "debug.h"
diff --git a/controls/desktop.c b/controls/desktop.c
index 7fb5251a24713004ffa99dead14a8bf9260119c4..64b8dda9d318396a3ce03827286ed5c3aebe9bcd 100644
--- a/controls/desktop.c
+++ b/controls/desktop.c
@@ -11,6 +11,7 @@
 #include <unistd.h>
 
 #include "desktop.h"
+#include "windef.h"
 #include "heap.h"
 #include "monitor.h"
 #include "win.h"
diff --git a/controls/edit.c b/controls/edit.c
index 25603802fb8ee4ada98fedde56d9558602f72c58..f0d83f06501b0de1aceb2038589d8442ae5a4c65 100644
--- a/controls/edit.c
+++ b/controls/edit.c
@@ -11,9 +11,9 @@
  *	please read EDIT.TODO (and update it when you change things)
  */
 
-#include "windows.h"
 #include "winnt.h"
 #include "win.h"
+#include "wine/winbase16.h"
 #include "combo.h"
 #include "local.h"
 #include "resource.h"
diff --git a/controls/scroll.c b/controls/scroll.c
index 099b123d6999a13ee56e0da3b594ef61faf5832b..5ae8a518355329f7f86ac3c4419d07733cf00efb 100644
--- a/controls/scroll.c
+++ b/controls/scroll.c
@@ -5,7 +5,6 @@
  * Copyright 1994, 1996 Alexandre Julliard
  */
 
-#include "windows.h"
 #include "wine/winuser16.h"
 #include "sysmetrics.h"
 #include "scroll.h"
diff --git a/controls/uitools.c b/controls/uitools.c
index 08a63969f62c8f4cc45116c29ccf059c8e53f998..28dc63e48b733b2b094b2851faa97b6a659bc142 100644
--- a/controls/uitools.c
+++ b/controls/uitools.c
@@ -5,7 +5,6 @@
  * Copyright 1997 Bertho A. Stultiens
  */
 
-#include "windows.h"
 #include "wine/winuser16.h"
 #include "debug.h"
 
diff --git a/debugger/break.c b/debugger/break.c
index e45a4387835d5a019b404776c1b0189e37f73791..4216158a7aeb1aa2cd29a9414460001cc76344e7 100644
--- a/debugger/break.c
+++ b/debugger/break.c
@@ -10,6 +10,7 @@
 #include <sys/types.h>
 #include <sys/mman.h>
 #include "module.h"
+#include "neexe.h"
 #include "process.h"
 #include "task.h"
 #include "miscemu.h"
diff --git a/debugger/dbg.y b/debugger/dbg.y
index 84fc6545b6df89c8f38aa37d3e965f40425c09c9..5ec81acff1bed71d3550720c55bad6848992d6de 100644
--- a/debugger/dbg.y
+++ b/debugger/dbg.y
@@ -20,6 +20,7 @@
 #include "options.h"
 #include "queue.h"
 #include "win.h"
+#include "wine/winbase16.h"
 #include "winnt.h"
 #include "debugger.h"
 #include "neexe.h"
diff --git a/debugger/expr.c b/debugger/expr.c
index 9637f8a53d2a0174b64d28deddfa74d0340adbe0..e45e763d16041252689b8823a0e91bea6c582336 100644
--- a/debugger/expr.c
+++ b/debugger/expr.c
@@ -11,6 +11,7 @@
 #include <limits.h>
 #include <sys/types.h>
 #include <neexe.h>
+#include "wine/winbase16.h"
 #include "module.h"
 #include "task.h"
 #include "selectors.h"
diff --git a/debugger/memory.c b/debugger/memory.c
index 49252164ee966b9fd153f2d9062793a32823a385..7658a372af4263ce2799f36f97d24d762d0aa8f4 100644
--- a/debugger/memory.c
+++ b/debugger/memory.c
@@ -9,6 +9,7 @@
 #include <stdlib.h>
 #include "windows.h"
 #include "debugger.h"
+#include "miscemu.h"
 
 
 /************************************************************
diff --git a/debugger/msc.c b/debugger/msc.c
index 9d6b1389a6221eb23148aa938675f3aaabbc41ae..efdd16fa6e927d11c6a52e1eb708bb44a56064d0 100644
--- a/debugger/msc.c
+++ b/debugger/msc.c
@@ -27,10 +27,10 @@
 #ifndef PATH_MAX
 #define PATH_MAX _MAX_PATH
 #endif
+#include "debugger.h"
 #include "win.h"
 #include "pe_image.h"
-#include "peexe.h"
-#include "debugger.h"
+#include "neexe.h"
 #include "peexe.h"
 #include "xmalloc.h"
 #include "file.h"
diff --git a/debugger/registers.c b/debugger/registers.c
index 3a7edd132095c0585f68b85a894ee8d076dc2656..2e4a0de0d295f204bf4c26edcbdd11b02788c055 100644
--- a/debugger/registers.c
+++ b/debugger/registers.c
@@ -5,6 +5,7 @@
  */
 
 #include <stdio.h>
+#include "selectors.h"
 #include "debugger.h"
 
 CONTEXT DEBUG_context;
diff --git a/debugger/source.c b/debugger/source.c
index 29e2c03dc4b3d34e4785a95b45f8baf3879aceba..04627ed1ef5f60cec52aa302f82747b09f8cdec8 100644
--- a/debugger/source.c
+++ b/debugger/source.c
@@ -20,6 +20,7 @@
 #endif
 
 #include "win.h"
+#include "wine/winbase16.h"
 #include "pe_image.h"
 #include "peexe.h"
 #include "debugger.h"
diff --git a/dlls/advapi32/advapi.c b/dlls/advapi32/advapi.c
index 36035f9586b99f74aba68fb004fae4e0459844d8..f73c84889d64937d845fd40029dbe36b614af820 100644
--- a/dlls/advapi32/advapi.c
+++ b/dlls/advapi32/advapi.c
@@ -4,12 +4,15 @@
  * Copyright 1995 Sven Verdoolaege
  */
 
-#include "windows.h"
+#include <unistd.h>
+
+#include "wintypes.h"
 #include "winerror.h"
-#include "debug.h"
+#include "wine/winestring.h"
 #include "heap.h"
 
-#include <unistd.h>
+#include "debug.h"
+
 
 /******************************************************************************
  * GetUserName32A [ADVAPI32.67]
diff --git a/dlls/advapi32/crypt.c b/dlls/advapi32/crypt.c
index 97f3b139c85ac282a2a2467049689331b21e39c3..0112ed4f4f8a0f7d178bc3d932bb952fdd5a1800 100644
--- a/dlls/advapi32/crypt.c
+++ b/dlls/advapi32/crypt.c
@@ -1,10 +1,10 @@
 /*
  * dlls/advapi32/crypt.c
  */
-#include "windows.h"
+#include "wintypes.h"
 #include "winerror.h"
-#include "debug.h"
 #include "wincrypt.h"
+#include "debug.h"
 
 /******************************************************************************
  * CryptAcquireContextA
diff --git a/dlls/advapi32/eventlog.c b/dlls/advapi32/eventlog.c
index 161017825f33b3c142267d99ec8d4de85a5f84dc..37cb8d4058c79fa14b2fe432aea1b25ddb9d62c4 100644
--- a/dlls/advapi32/eventlog.c
+++ b/dlls/advapi32/eventlog.c
@@ -4,11 +4,13 @@
  * Copyright 1995 Sven Verdoolaege, 1998 Juergen Schmied
  */
 
-#include "windows.h"
+#include "wintypes.h"
+#include "winreg.h"
 #include "winerror.h"
-#include "debug.h"
 #include "heap.h"
 
+#include "debug.h"
+
 /******************************************************************************
  * BackupEventLog32A [ADVAPI32.15]
  */
diff --git a/dlls/advapi32/security.c b/dlls/advapi32/security.c
index 3983aba3cf4a9ea91b71b28bcc681c4113cb147c..6d46d3922572e899afde4c0ea3c5b25e1d5d6e50 100644
--- a/dlls/advapi32/security.c
+++ b/dlls/advapi32/security.c
@@ -1,11 +1,12 @@
 /*
  * dlls/advapi32/security.c
  */
-#include "windows.h"
+#include "wintypes.h"
+#include "winreg.h"
 #include "winerror.h"
-#include "debug.h"
 #include "heap.h"
 #include "ntdll.h"
+#include "debug.h"
 
 /* FIXME: move it to a header */
 BOOL32 WINAPI IsValidSid (PSID pSid);
diff --git a/dlls/advapi32/service.c b/dlls/advapi32/service.c
index 11b76e45b4b088cf59e809282ae6ee9ac0303590..c8ce36fa15779f9ddd17a6897e54dbc7e4266329 100644
--- a/dlls/advapi32/service.c
+++ b/dlls/advapi32/service.c
@@ -4,11 +4,12 @@
  * Copyright 1995 Sven Verdoolaege
  */
 
-#include "windows.h"
+#include <time.h>
+#include "wintypes.h"
+#include "winreg.h"
 #include "winerror.h"
-#include "debug.h"
 #include "heap.h"
-#include <time.h>
+#include "debug.h"
 
 /* FIXME: Where do these belong? */
 typedef DWORD	SERVICE_STATUS_HANDLE;
diff --git a/dlls/comctl32/animate.c b/dlls/comctl32/animate.c
index fc5015925880e8a881e5c5c96fdc25f8ad00f56b..bf44427ab75ffb03c7cb87e5ab383e3490137a22 100644
--- a/dlls/comctl32/animate.c
+++ b/dlls/comctl32/animate.c
@@ -13,15 +13,12 @@
  *   - All notifications.
  */
 
-#include "windows.h"
-#include "winnt.h"
-#include "winbase.h"
+
+#include "win.h"
 #include "commctrl.h"
 #include "animate.h"
-#include "win.h"
 #include "debug.h"
 
-
 #define ANIMATE_GetInfoPtr(wndPtr) ((ANIMATE_INFO *)wndPtr->wExtra[0])
 
 
diff --git a/dlls/comctl32/comboex.c b/dlls/comctl32/comboex.c
index b04951a78ad09507be77da1a392243514faee946..a77f67914c92d00b3ba83fb19a7b5f0aca44a160 100644
--- a/dlls/comctl32/comboex.c
+++ b/dlls/comctl32/comboex.c
@@ -16,7 +16,6 @@
  *   - should include "combo.h" 
  */
 
-#include "windows.h"
 #include "commctrl.h"
 #include "comboex.h"
 #include "win.h"
diff --git a/dlls/comctl32/comctl32undoc.c b/dlls/comctl32/comctl32undoc.c
index 41cb935b95656d0a151b57b8d7742c0d351f9d62..c83956d4a0aa3e97ab29533fbb61e8b7039a81b6 100644
--- a/dlls/comctl32/comctl32undoc.c
+++ b/dlls/comctl32/comctl32undoc.c
@@ -15,9 +15,9 @@
  */
 
 #include <string.h>
-#include <stdlib.h>
+#include <stdlib.h> /* atoi */
 #include <ctype.h>
-#include "windows.h"
+
 #include "commctrl.h"
 #include "heap.h"
 #include "debug.h"
diff --git a/dlls/comctl32/datetime.c b/dlls/comctl32/datetime.c
index 79963a8641166c4e183712f05b9e9e9f0eb81bee..6bec9026ff04cf3fd250c2526f2ee1af5d1062a6 100644
--- a/dlls/comctl32/datetime.c
+++ b/dlls/comctl32/datetime.c
@@ -14,7 +14,6 @@
  *
  */
 
-#include "windows.h"
 #include "commctrl.h"
 #include "datetime.h"
 #include "win.h"
diff --git a/dlls/comctl32/draglist.c b/dlls/comctl32/draglist.c
index e70282fb9eb9fad82cbdefff60558bfd087e7fde..560fa8015163d55feb5f0cfea7f39fe4e42f17a5 100644
--- a/dlls/comctl32/draglist.c
+++ b/dlls/comctl32/draglist.c
@@ -12,7 +12,6 @@
  *   - Everything.
  */
 
-#include "windows.h"
 #include "commctrl.h"
 
 #include "debug.h"
diff --git a/dlls/comctl32/flatsb.c b/dlls/comctl32/flatsb.c
index 1813ff0fb41c4b09383b164a24eff85e9037b4c9..982a1c450908965d95e3c491b9a3e727870e19b4 100644
--- a/dlls/comctl32/flatsb.c
+++ b/dlls/comctl32/flatsb.c
@@ -15,7 +15,6 @@
  *
  */
 
-#include "windows.h"
 #include "commctrl.h"
 #include "flatsb.h" 
 #include "win.h"
diff --git a/dlls/comctl32/header.c b/dlls/comctl32/header.c
index b0520e5563d770df8e370e362e7a2c955e3d9646..253cc41c226f70e48b35cadc162f6a19122e8fc2 100644
--- a/dlls/comctl32/header.c
+++ b/dlls/comctl32/header.c
@@ -19,10 +19,9 @@
  *   - Little flaw when drawing a bitmap on the right side of the text.
  */
 
-#include "windows.h"
 #include "commctrl.h"
-#include "header.h"
 #include "win.h"
+#include "header.h"
 #include "debug.h"
 
 
diff --git a/dlls/comctl32/hotkey.c b/dlls/comctl32/hotkey.c
index be2c3296f0dd37361f8e755426f518aa952e504e..e9a3438428b1125b0842845cb446f720a6beaae2 100644
--- a/dlls/comctl32/hotkey.c
+++ b/dlls/comctl32/hotkey.c
@@ -13,7 +13,6 @@
  *   - Display code.
  */
 
-#include "windows.h"
 #include "commctrl.h"
 #include "hotkey.h"
 #include "win.h"
diff --git a/dlls/comctl32/imagelist.c b/dlls/comctl32/imagelist.c
index 0650a65ad9eed6e32149404c36017bcd47fc69b8..540ae42d244ab9df792f379af1c56540f10efc27 100644
--- a/dlls/comctl32/imagelist.c
+++ b/dlls/comctl32/imagelist.c
@@ -30,7 +30,6 @@
 #define __WINE_IMAGELIST_C
 
  
-#include "windows.h"
 #include "wine/obj_base.h"
 #include "wine/obj_storage.h"
 #include "imagelist.h"
diff --git a/dlls/comctl32/ipaddress.c b/dlls/comctl32/ipaddress.c
index 0e83d0291d8ffede6b9bfc70d44c41073dfe5d3c..59bf86a5f67bca3615ae62600cdc61db106df324 100644
--- a/dlls/comctl32/ipaddress.c
+++ b/dlls/comctl32/ipaddress.c
@@ -22,7 +22,6 @@
 #include <ctype.h>
 #include <stdlib.h>
 
-#include "windows.h"
 #include "win.h"
 #include "commctrl.h"
 #include "ipaddress.h"
diff --git a/dlls/comctl32/monthcal.c b/dlls/comctl32/monthcal.c
index eb29519db28c05a4645a8054e8719b8c37049e50..3ccc94656b3781130bee5badcd5dca34ebd4495f 100644
--- a/dlls/comctl32/monthcal.c
+++ b/dlls/comctl32/monthcal.c
@@ -14,7 +14,6 @@
  *
  */
 
-#include "windows.h"
 #include "commctrl.h"
 #include "monthcal.h"
 #include "win.h"
diff --git a/dlls/comctl32/nativefont.c b/dlls/comctl32/nativefont.c
index c4ae462f5947fb93238df214c8d55ada86fdc0de..3877b44acb4f2d2228629c299e67f67446972121 100644
--- a/dlls/comctl32/nativefont.c
+++ b/dlls/comctl32/nativefont.c
@@ -13,7 +13,6 @@
  *   - All notifications.
  */
 
-#include "windows.h"
 #include "commctrl.h"
 #include "nativefont.h"
 #include "win.h"
diff --git a/dlls/comctl32/pager.c b/dlls/comctl32/pager.c
index 979eca1b7050018fbe6cc25e142563cfdd425d87..cae056c8ece8703837821a06e019cb80077fa744 100644
--- a/dlls/comctl32/pager.c
+++ b/dlls/comctl32/pager.c
@@ -13,7 +13,6 @@
  *   - All notifications.
  */
 
-#include "windows.h"
 #include "commctrl.h"
 #include "pager.h"
 #include "win.h"
diff --git a/dlls/comctl32/progress.c b/dlls/comctl32/progress.c
index 3a99d3fa6e58cb43fb33a5322b4a7a47191923ad..7b17a70cbbbb3ac773f01357530cdbd358cfc5d7 100644
--- a/dlls/comctl32/progress.c
+++ b/dlls/comctl32/progress.c
@@ -5,7 +5,6 @@
  *
  */
 
-#include "windows.h"
 #include "commctrl.h"
 #include "progress.h"
 #include "win.h"
diff --git a/dlls/comctl32/propsheet.c b/dlls/comctl32/propsheet.c
index 548f1628a72c0ac13be5819c3bfab8b3e697129a..ffe30f41f8ca3afbea276fd3d47fdeb71f903fde 100644
--- a/dlls/comctl32/propsheet.c
+++ b/dlls/comctl32/propsheet.c
@@ -8,7 +8,6 @@
  *
  */
 
-#include "windows.h"
 #include "commctrl.h"
 #include "prsht.h"
 #include "propsheet.h"
diff --git a/dlls/comctl32/rebar.c b/dlls/comctl32/rebar.c
index 006f92c8c70d146b43c96354bb4d9f3041e443cb..32b3c1bf8c004d39d249e2c6ecc08776028c607d 100644
--- a/dlls/comctl32/rebar.c
+++ b/dlls/comctl32/rebar.c
@@ -18,7 +18,6 @@
  *   - All notifications.
  */
 
-#include "windows.h"
 #include "commctrl.h"
 #include "rebar.h"
 #include "win.h"
diff --git a/dlls/comctl32/status.c b/dlls/comctl32/status.c
index e32c30a8e938dc062683cced6e0ad82075e6e636..30acd1c1cdf4af423538a5cb8442093a539bbd9d 100644
--- a/dlls/comctl32/status.c
+++ b/dlls/comctl32/status.c
@@ -5,7 +5,6 @@
  * Copyright 1998 Eric Kohl
  */
 
-#include "windows.h"
 #include "commctrl.h"
 #include "status.h"
 #include "win.h"
diff --git a/dlls/comctl32/tab.c b/dlls/comctl32/tab.c
index 18f2a60f9e58542022c0a0a7019b617d17a47693..06ad3687b966ca34f7147c0b3ade5a041cad7795 100644
--- a/dlls/comctl32/tab.c
+++ b/dlls/comctl32/tab.c
@@ -13,7 +13,6 @@
  *
  */
 
-#include "windows.h"
 #include "commctrl.h"
 #include "tab.h"
 #include "win.h"
diff --git a/dlls/comctl32/toolbar.c b/dlls/comctl32/toolbar.c
index 816e3b04aea654cab26b17c80221c727c78e1e7c..37f0d642ad0a39d273e86b74f0cfa1771d82ec4c 100644
--- a/dlls/comctl32/toolbar.c
+++ b/dlls/comctl32/toolbar.c
@@ -25,7 +25,6 @@
  *   - Microsofts controlspy examples.
  */
 
-#include "windows.h"
 #include "commctrl.h"
 #include "sysmetrics.h"
 #include "cache.h"
diff --git a/dlls/comctl32/tooltips.c b/dlls/comctl32/tooltips.c
index f04d1c743613f9db019ccaba23c3624145a6ae22..d5b756defd6b07a78093fe9a163ab789052cf18b 100644
--- a/dlls/comctl32/tooltips.c
+++ b/dlls/comctl32/tooltips.c
@@ -14,7 +14,6 @@
  *     hittest.exe, needtext.exe, newrect.exe, updtext.exe and winfrpt.exe.
  */
 
-#include "windows.h"
 #include "commctrl.h"
 #include "tooltips.h"
 #include "win.h"
diff --git a/dlls/comctl32/trackbar.c b/dlls/comctl32/trackbar.c
index 65863b405810ca1396e9d018062966cc7897ec87..575ba0492d2b4043ecbc0dabcc415a67759aa9ef 100644
--- a/dlls/comctl32/trackbar.c
+++ b/dlls/comctl32/trackbar.c
@@ -24,7 +24,6 @@
 
 
 
-#include "windows.h"
 #include "commctrl.h"
 #include "trackbar.h"
 #include "win.h"
diff --git a/dlls/comctl32/treeview.c b/dlls/comctl32/treeview.c
index 08b48fbd6220c7fdfa2aa6a139abe7556597861d..63d283374050e0261a39e20a84cde751096906b7 100644
--- a/dlls/comctl32/treeview.c
+++ b/dlls/comctl32/treeview.c
@@ -38,7 +38,7 @@
 
 
 #include <string.h>
-#include "windows.h"
+#include "winbase.h"
 #include "commctrl.h"
 #include "treeview.h"
 #include "win.h"
diff --git a/dlls/comctl32/updown.c b/dlls/comctl32/updown.c
index 1f393520e11f4974528776806152013de676ae96..8d1ed3222d84ff5d2691babc3ae6d5deb5d0182e 100644
--- a/dlls/comctl32/updown.c
+++ b/dlls/comctl32/updown.c
@@ -30,7 +30,6 @@
  */
 
 #include <stdlib.h>
-#include "windows.h"
 #include "commctrl.h"
 #include "winnls.h"
 #include "sysmetrics.h"
diff --git a/dlls/imagehlp/access.c b/dlls/imagehlp/access.c
index d9c40643461b727927656ccf9c3eaa3b7763998f..1d6374797c343ca8aa52c78de45c68058f5c725b 100644
--- a/dlls/imagehlp/access.c
+++ b/dlls/imagehlp/access.c
@@ -4,7 +4,6 @@
  *	Copyright 1998	Patrik Stridvall
  */
 
-#include "windows.h"
 #include "winbase.h"
 #include "winnt.h"
 #include "winerror.h"
diff --git a/dlls/imagehlp/debug.c b/dlls/imagehlp/debug.c
index becf2473c5c37d45ff968db312f6da196e56a520..c92b1bbd9871c95f1eab4f31e6333b7f35d9d083 100644
--- a/dlls/imagehlp/debug.c
+++ b/dlls/imagehlp/debug.c
@@ -4,8 +4,8 @@
  *	Copyright 1998	Patrik Stridvall
  */
 
-#include "windows.h"
 #include "winerror.h"
+#include "winbase.h"
 #include "wintypes.h"
 #include "debug.h"
 #include "imagehlp.h"
diff --git a/dlls/imagehlp/imagehlp_main.c b/dlls/imagehlp/imagehlp_main.c
index 9e728ad4d66ec6f53b462024dd9eb5a420bc0bdf..cc769458b2f6b52fb613599746cefe78b4f00e1a 100644
--- a/dlls/imagehlp/imagehlp_main.c
+++ b/dlls/imagehlp/imagehlp_main.c
@@ -4,11 +4,11 @@
  *	Copyright 1998	Patrik Stridvall
  */
 
-#include "windows.h"
+#include "imagehlp.h"
 #include "winerror.h"
+#include "winbase.h"
 #include "wintypes.h"
 #include "debug.h"
-#include "imagehlp.h"
 
 /**********************************************************************/
 
diff --git a/dlls/imagehlp/integrity.c b/dlls/imagehlp/integrity.c
index 9614da5c98f6d516daf27965894c8fe1b7743a7d..c15308d3c8173ac0fd09165c1720bd27aff69ab3 100644
--- a/dlls/imagehlp/integrity.c
+++ b/dlls/imagehlp/integrity.c
@@ -4,11 +4,11 @@
  *	Copyright 1998	Patrik Stridvall
  */
 
-#include "windows.h"
-#include "winerror.h"
 #include "wintypes.h"
-#include "debug.h"
+#include "winbase.h"
+#include "winerror.h"
 #include "imagehlp.h"
+#include "debug.h"
 
 /***********************************************************************
  *           ImageAddCertificate32 (IMAGEHLP.10)
diff --git a/dlls/imagehlp/internal.c b/dlls/imagehlp/internal.c
index 3d780b2cfbbdb06d60c813d88df09e21f16106ef..42a8495b3382fa9aa1b7087775e9c042cace75c2 100644
--- a/dlls/imagehlp/internal.c
+++ b/dlls/imagehlp/internal.c
@@ -4,7 +4,7 @@
  *	Copyright 1998	Patrik Stridvall
  */
 
-#include "windows.h"
+#include "winbase.h"
 #include "winerror.h"
 #include "wintypes.h"
 #include "debug.h"
diff --git a/dlls/imagehlp/modify.c b/dlls/imagehlp/modify.c
index de67bab4131051b83a380c84b1d574420e5e61cd..ad8bbcfaf438bc4c5f22c4818f403d7d1b97d45e 100644
--- a/dlls/imagehlp/modify.c
+++ b/dlls/imagehlp/modify.c
@@ -4,7 +4,7 @@
  *	Copyright 1998	Patrik Stridvall
  */
 
-#include "windows.h"
+#include "winbase.h"
 #include "winerror.h"
 #include "wintypes.h"
 #include "debug.h"
diff --git a/dlls/imagehlp/symbol.c b/dlls/imagehlp/symbol.c
index 4ff3512eb6af2f355be0a151cc4be14366f9a148..b3191450f2d16e0bd4f2a16b50a412aa66c91141 100644
--- a/dlls/imagehlp/symbol.c
+++ b/dlls/imagehlp/symbol.c
@@ -4,7 +4,7 @@
  *	Copyright 1998	Patrik Stridvall
  */
 
-#include "windows.h"
+#include "winbase.h"
 #include "winerror.h"
 #include "wintypes.h"
 #include "debug.h"
diff --git a/dlls/msacm/msacm_main.c b/dlls/msacm/msacm_main.c
index e234d436be07e7d60f9a504f457e62457fe66eb7..ea65a5bcb96e51fbac6f00abbf878e6616b68f0b 100644
--- a/dlls/msacm/msacm_main.c
+++ b/dlls/msacm/msacm_main.c
@@ -4,12 +4,11 @@
  *      Copyright 1998  Patrik Stridvall
  */
 
-#include "windows.h"
 #include "winerror.h"
+#include "winbase.h"
 #include "wintypes.h"
-#include "debug.h"
-#include "mmsystem.h"
 #include "msacm.h"
+#include "debug.h"
 
 /***********************************************************************
  *           ACMGETVERSION (MSACM.7)
diff --git a/dlls/msacm32/builtin.c b/dlls/msacm32/builtin.c
index 985c76fd0055650ef1632e1a232b704154b13889..3ba3339e2f323ee75e522b8ba74ea811a92d07da 100644
--- a/dlls/msacm32/builtin.c
+++ b/dlls/msacm32/builtin.c
@@ -4,7 +4,7 @@
  *      Copyright 1998  Patrik Stridvall
  */
 
-#include "windows.h"
+#include "winbase.h"
 #include "winerror.h"
 #include "wintypes.h"
 #include "debug.h"
diff --git a/dlls/msacm32/driver.c b/dlls/msacm32/driver.c
index bee3d110c2ad5f7f68d33177328d3d5537e266db..2d7411a510b0a2c2d0c9e4c8272526d85d6306a0 100644
--- a/dlls/msacm32/driver.c
+++ b/dlls/msacm32/driver.c
@@ -4,9 +4,10 @@
  *      Copyright 1998  Patrik Stridvall
  */
 
-#include "windows.h"
+#include "winbase.h"
 #include "winerror.h"
 #include "wintypes.h"
+#include "winuser.h"
 #include "debug.h"
 #include "driver.h"
 #include "heap.h"
diff --git a/dlls/msacm32/filter.c b/dlls/msacm32/filter.c
index 45dc02cd7ce12b70e1ec641b99421953e2137ef1..b0fddca24b51dd185deb6554757ce246585a6a42 100644
--- a/dlls/msacm32/filter.c
+++ b/dlls/msacm32/filter.c
@@ -4,7 +4,7 @@
  *      Copyright 1998  Patrik Stridvall
  */
 
-#include "windows.h"
+#include "winbase.h"
 #include "winerror.h"
 #include "wintypes.h"
 #include "debug.h"
diff --git a/dlls/msacm32/format.c b/dlls/msacm32/format.c
index 0cd2fc1d6f644f9db79a23c02ed8a646fc54b049..e780bd14c0cf5d04ba6b5474a06e88ae3d54779e 100644
--- a/dlls/msacm32/format.c
+++ b/dlls/msacm32/format.c
@@ -4,7 +4,7 @@
  *      Copyright 1998  Patrik Stridvall
  */
 
-#include "windows.h"
+#include "winbase.h"
 #include "winerror.h"
 #include "wintypes.h"
 #include "debug.h"
diff --git a/dlls/msacm32/internal.c b/dlls/msacm32/internal.c
index 62c60aee44118e3dc7841390b56519398bb1982a..f382a0a7a646234d1c93d90e6bfb7b1ad462841c 100644
--- a/dlls/msacm32/internal.c
+++ b/dlls/msacm32/internal.c
@@ -4,7 +4,8 @@
  *      Copyright 1998  Patrik Stridvall
  */
 
-#include "windows.h"
+#include "winbase.h"
+#include "winuser.h"
 #include "winerror.h"
 #include "wintypes.h"
 #include "debug.h"
diff --git a/dlls/msacm32/msacm32_main.c b/dlls/msacm32/msacm32_main.c
index f1dc476afdd6cddba32edfc86d9a91029239a4ca..655c226de40a130af3c1b94203b27648aa8abc13 100644
--- a/dlls/msacm32/msacm32_main.c
+++ b/dlls/msacm32/msacm32_main.c
@@ -4,11 +4,10 @@
  *      Copyright 1998  Patrik Stridvall
  */
 
-#include "windows.h"
+#include "winbase.h"
 #include "winerror.h"
 #include "wintypes.h"
 #include "debug.h"
-#include "mmsystem.h"
 #include "msacm.h"
 #include "msacmdrv.h"
 #include "winversion.h"
diff --git a/dlls/msacm32/stream.c b/dlls/msacm32/stream.c
index d159478d74a968385d86b8ea1f00e910eba29b67..21ca98b1249041f26ba21579288336a53515ae76 100644
--- a/dlls/msacm32/stream.c
+++ b/dlls/msacm32/stream.c
@@ -4,7 +4,7 @@
  *      Copyright 1998  Patrik Stridvall
  */
 
-#include "windows.h"
+#include "winbase.h"
 #include "winerror.h"
 #include "wintypes.h"
 #include "debug.h"
diff --git a/dlls/ntdll/nt.c b/dlls/ntdll/nt.c
index e404ad8d8b7e16b968a475eb4353d51cd4f735d9..af150305244b93f8000b10864fce22dcc1301a4e 100644
--- a/dlls/ntdll/nt.c
+++ b/dlls/ntdll/nt.c
@@ -10,19 +10,13 @@
 #include <stdlib.h>
 #include <string.h>
 #include <time.h>
-#include "win.h"
-#include "file.h"
-#include "windows.h"
-#include "winnls.h"
-#include "heap.h"
-#include "debug.h"
-#include "module.h"
-#include "debugstr.h"
-
-#include "winnt.h"
+#include "wintypes.h"
 #include "windef.h"
+#include "ntdll.h"
 #include "ntdef.h"
 #include "ntddk.h"
+#include "debugstr.h"
+#include "debug.h"
 
 /* move to winbase.h */
 typedef VOID (CALLBACK *PTIMERAPCROUTINE)(LPVOID lpArgToCompletionRoutine,DWORD dwTimerLowValue,DWORD dwTimerHighValue);   
diff --git a/dlls/ntdll/reg.c b/dlls/ntdll/reg.c
index c644f992daf79ca89676289286541ffd9ffb31f3..7e605115ca8981c64e9c9d1c0a7fc1632197c587 100644
--- a/dlls/ntdll/reg.c
+++ b/dlls/ntdll/reg.c
@@ -1,10 +1,11 @@
-#include "win.h"
-#include "debug.h"
-#include "windows.h"
+#include "windef.h"
+#include "wintypes.h"
 #include "winreg.h"
 #include "ntdll.h"
 #include "ntddk.h"
 
+#include "debug.h"
+
 /******************************************************************************
  * NtCreateKey [NTDLL]
  * ZwCreateKey
diff --git a/dlls/ntdll/rtl.c b/dlls/ntdll/rtl.c
index 2fedbc7c603674ee89cd79d8c70eafec1ba95764..104e0e62a2b00c0e66ca06b93c79d5819d810914 100644
--- a/dlls/ntdll/rtl.c
+++ b/dlls/ntdll/rtl.c
@@ -12,21 +12,20 @@
 #include <time.h>
 #include <ctype.h>
 #include <math.h>
-#include "win.h"
-#include "stackframe.h"
+#include "windef.h"
+#include "winbase.h"
+#include "wine/winestring.h"
 #include "file.h"
-#include "windows.h"
+#include "stackframe.h"
 #include "winnls.h"
 #include "ntdll.h"
-#include "heap.h"
-#include "debug.h"
-#include "module.h"
-#include "heap.h"
 #include "debugstr.h"
-
+#include "heap.h"
 #include "ntdef.h"
 #include "winreg.h"
 
+#include "debug.h"
+
 /* fixme: move to windef.h*/
 typedef BOOL32 *LPBOOL;   
 /**************************************************************************
diff --git a/dlls/psapi/psapi_main.c b/dlls/psapi/psapi_main.c
index 94bc7f6f5ac6df7555e0546a4209f7ce71dfedfb..07c2b3b59a0c2262ca60260bd14911284b4f9046 100644
--- a/dlls/psapi/psapi_main.c
+++ b/dlls/psapi/psapi_main.c
@@ -4,7 +4,6 @@
  *      Copyright 1998  Patrik Stridvall
  */
 
-#include "windows.h"
 #include "winbase.h"
 #include "wintypes.h"
 #include "winerror.h"
diff --git a/dlls/rasapi32/rasapi.c b/dlls/rasapi32/rasapi.c
index 98c8250a6b090d3cefe7bb1734f13dbd823bd06b..a798f2b8f3f8f96b0f2d3cdae404a2e45b0d324a 100644
--- a/dlls/rasapi32/rasapi.c
+++ b/dlls/rasapi32/rasapi.c
@@ -4,7 +4,7 @@
  * Copyright 1998 Marcus Meissner
  */
 
-#include "windows.h"
+#include "wintypes.h"
 #include "ras.h"
 #include "debug.h"
 
diff --git a/dlls/shell32/brsfolder.c b/dlls/shell32/brsfolder.c
index 63ad76f2addf11b6af2499102e8c330fc2f23b48..69e6163bc15b1cfefc4d6963a3f7239b4fa692ab 100644
--- a/dlls/shell32/brsfolder.c
+++ b/dlls/shell32/brsfolder.c
@@ -1,7 +1,6 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "windows.h"
 #include "wine/winuser16.h"
 #include "winerror.h"
 #include "heap.h"
diff --git a/dlls/shell32/classes.c b/dlls/shell32/classes.c
index b65090e8803bb0e7b718298f76eb7ea84b7e54a9..b980b23b1e962d78fed179fc95f188fb72dc563d 100644
--- a/dlls/shell32/classes.c
+++ b/dlls/shell32/classes.c
@@ -8,6 +8,7 @@
 #include <string.h>
 #include "debug.h"
 #include "winerror.h"
+#include "winreg.h"
 
 #include "shlobj.h"
 #include "shell32_main.h"
diff --git a/dlls/shell32/contmenu.c b/dlls/shell32/contmenu.c
index 918980731561a4252ad74af6619f24a9100d3922..14f79121ed09113cc4dee6c9a0830fbb8a73e70d 100644
--- a/dlls/shell32/contmenu.c
+++ b/dlls/shell32/contmenu.c
@@ -3,7 +3,6 @@
  *
  *	Copyright 1998	Juergen Schmied <juergen.schmied@metronet.de>
  */
-#include "windows.h"
 #include "winerror.h"
 #include "debug.h"
 
@@ -11,7 +10,6 @@
 #include "objbase.h"
 #include "if_macros.h"
 #include "shlguid.h"
-#include "shlobj.h"
 #include "shell32_main.h"
 #include "shresdef.h"
 
diff --git a/dlls/shell32/enumidlist.c b/dlls/shell32/enumidlist.c
index 0707dd10a920770e9d1b8aa4bfaa3dec56cbbb57..baa3a7492db18a62b77611a3fddfc8987170ea9e 100644
--- a/dlls/shell32/enumidlist.c
+++ b/dlls/shell32/enumidlist.c
@@ -12,7 +12,6 @@
 
 #include "pidl.h"
 #include "shlguid.h"
-#include "shlobj.h"
 #include "shell32_main.h"
 
 /* IEnumIDList Implementation */
diff --git a/dlls/shell32/folders.c b/dlls/shell32/folders.c
index 4140c990b0c89d36412206fb4db34de520130d9b..f556c96d8b6fc35acfad245ea29e516b8ccd68e9 100644
--- a/dlls/shell32/folders.c
+++ b/dlls/shell32/folders.c
@@ -9,11 +9,9 @@
 #include "debug.h"
 #include "objbase.h"
 #include "winerror.h"
-
 #include "pidl.h"
 #include "shell32_main.h"
 #include "shlguid.h"
-#include "shlobj.h"
 
 
 /******************************************************************************
diff --git a/dlls/shell32/iconcache.c b/dlls/shell32/iconcache.c
index 64ae065c4509414980517275633c3bcafb2ca9f0..a6786318058bef131636f5351923abfc0ea4b2a0 100644
--- a/dlls/shell32/iconcache.c
+++ b/dlls/shell32/iconcache.c
@@ -5,8 +5,8 @@
  *  since dll geting never unloaded the iconcache will never be freed
  */
 #include <string.h>
-#include "windows.h"
 #include "wine/winuser16.h"
+#include "wine/winbase16.h"
 #include "neexe.h"
 #include "cursoricon.h"
 #include "module.h"
diff --git a/dlls/shell32/shell32_main.c b/dlls/shell32/shell32_main.c
index 8d6a992ffbadae10543dedecc2f901060396e61e..05238d48d6455520c2c13c71192f4e75bf3798c1 100644
--- a/dlls/shell32/shell32_main.c
+++ b/dlls/shell32/shell32_main.c
@@ -7,7 +7,6 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "windows.h"
 #include "wine/winuser16.h"
 #include "winerror.h"
 #include "heap.h"
@@ -20,6 +19,7 @@
 #include "authors.h"
 
 #include "shell.h"
+#include "shellapi.h"
 #include "pidl.h"
 #include "shlobj.h"
 #include "shell32_main.h"
diff --git a/dlls/shell32/shellole.c b/dlls/shell32/shellole.c
index 3887a44c1ad3b186235c1ae3f6ef13cc5bdddf14..3ec96a0931453f63b883e92c091f8ebe41a7b178 100644
--- a/dlls/shell32/shellole.c
+++ b/dlls/shell32/shellole.c
@@ -8,15 +8,17 @@
 
 #include <stdlib.h>
 #include <string.h>
-#include "debug.h"
-#include "objbase.h"
+#include "winreg.h"
 #include "winerror.h"
+#include "objbase.h"
 #include "winversion.h"
 
 #include "shlguid.h"
 #include "shlobj.h"
 #include "shell32_main.h"
 
+#include "debug.h"
+
 /*************************************************************************
  *
  */
diff --git a/dlls/shell32/shellord.c b/dlls/shell32/shellord.c
index 04cce4837f919b8c22316c0060fe06280120796b..5bff5120b95cd5b58a131f1fba29af2f3c651ef4 100644
--- a/dlls/shell32/shellord.c
+++ b/dlls/shell32/shellord.c
@@ -6,8 +6,8 @@
  *           1998 Jürgen Schmied
  */
 #include <string.h>
-#include "windows.h"
 #include "winerror.h"
+#include "winreg.h"
 #include "debug.h"
 #include "winnls.h"
 #include "winversion.h"
diff --git a/dlls/shell32/shellpath.c b/dlls/shell32/shellpath.c
index 3efa3edfd914a4d9a9e214d77f697cb714b9f3ff..8503657b27bd26cf517e7b88dd51562cc9b01871 100644
--- a/dlls/shell32/shellpath.c
+++ b/dlls/shell32/shellpath.c
@@ -6,7 +6,6 @@
  */
 #include <string.h>
 #include <ctype.h>
-#include "windows.h"
 #include "debug.h"
 #include "winnls.h"
 #include "winversion.h"
diff --git a/dlls/shell32/shlview.c b/dlls/shell32/shlview.c
index a02ef3fa87d5ddcb1766515287c7b37bbab84dc4..cc988220f8fe37e7304299671c85ce59da4775cd 100644
--- a/dlls/shell32/shlview.c
+++ b/dlls/shell32/shlview.c
@@ -10,7 +10,7 @@
 
 #include <stdlib.h>
 #include <string.h>
-#include "debug.h"
+
 #include "winerror.h"
 
 #include "pidl.h"
@@ -22,6 +22,8 @@
 #include "shell32_main.h"
 #include "shresdef.h"
 
+#include "debug.h"
+
 /***********************************************************************
 *   IShellView implementation
 */
diff --git a/dlls/ver/ver16.c b/dlls/ver/ver16.c
index aa19df0d4fdd626cb796500669b04cda542ce576..f2a05d4e1535ccf9276f6d554b04881e32eac626 100644
--- a/dlls/ver/ver16.c
+++ b/dlls/ver/ver16.c
@@ -4,10 +4,11 @@
  * Copyright 1999 Ulrich Weigand
  */
 
-#include "windows.h"
-#include "debug.h"
-#include "ver.h"
+#include "winbase.h"
+#include "winver.h"
 #include "ldt.h"
+#include "ver.h"
+#include "debug.h"
 
 
 /*************************************************************************
diff --git a/dlls/version/info.c b/dlls/version/info.c
index 3835eae3d995de2498d27137bcd282f60ae5d05d..185f2f1bacec0aca1cabdf7362311961b1a3e518 100644
--- a/dlls/version/info.c
+++ b/dlls/version/info.c
@@ -9,11 +9,12 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "windows.h"
+#include "winreg.h"
+#include "winver.h"
+#include "wine/winuser16.h"
 #include "winerror.h"
 #include "heap.h"
 #include "ver.h"
-#include "winreg.h"
 #include "debug.h"
 
 
diff --git a/dlls/version/install.c b/dlls/version/install.c
index e921ecfb69ae252e216c4b6966a501de11169ec4..40c8d5f4dae9a39373fcf70878a0a9d54aca9c9f 100644
--- a/dlls/version/install.c
+++ b/dlls/version/install.c
@@ -8,7 +8,9 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "windows.h"
+#include "windef.h"
+#include "winver.h"
+#include "wine/winestring.h"
 #include "winerror.h"
 #include "heap.h"
 #include "ver.h"
diff --git a/dlls/version/resource.c b/dlls/version/resource.c
index 580d32945c866b836b31b49dff49934b7ae1c5f0..2a48b97d54cbf74f6e95f41594064ea1f571333f 100644
--- a/dlls/version/resource.c
+++ b/dlls/version/resource.c
@@ -9,12 +9,14 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "windows.h"
-#include "heap.h"
+#include "peexe.h"
+#include "neexe.h"
+#include "module.h"
+#include "winver.h"
 #include "ver.h"
+#include "heap.h"
 #include "lzexpand.h"
-#include "module.h"
-#include "neexe.h"
+#include "peexe.h"
 #include "debug.h"
 
 
diff --git a/dlls/winaspi/winaspi16.c b/dlls/winaspi/winaspi16.c
index 0dc0cbcaaa9fc27dcde1b65d91425db108f074d8..bbdbc0099e831319884ed6b898d016ce51c8ef40 100644
--- a/dlls/winaspi/winaspi16.c
+++ b/dlls/winaspi/winaspi16.c
@@ -8,14 +8,13 @@
 #include <unistd.h>
 #include <callback.h>
 #include <string.h>
-#include "windows.h"
+#include "winbase.h"
 #include "aspi.h"
 #include "winaspi.h"
 #include "options.h"
 #include "heap.h"
 #include "debug.h"
 #include "selectors.h"
-#include "module.h"
 #include "miscemu.h"
 
 
diff --git a/dlls/wnaspi32/winaspi32.c b/dlls/wnaspi32/winaspi32.c
index 8eec3c56290366907d64ca75514aafcf85fa5a1c..e57272e4fde22d978e6d59f5900d47032847834b 100644
--- a/dlls/wnaspi32/winaspi32.c
+++ b/dlls/wnaspi32/winaspi32.c
@@ -7,15 +7,13 @@
 #include <memory.h>
 #include <unistd.h>
 #include <callback.h>
-#include "windows.h"
+
+#include "winbase.h"
 #include "aspi.h"
 #include "wnaspi32.h"
 #include "options.h"
 #include "heap.h"
 #include "debug.h"
-#include "selectors.h"
-#include "module.h"
-#include "miscemu.h"
 
 
 /* FIXME!
diff --git a/files/change.c b/files/change.c
index 6e81b4e7f33da3357663ea42ecfe6233a8de98c5..2aa1a1e34de03a9989234a3550fae8697ec187fc 100644
--- a/files/change.c
+++ b/files/change.c
@@ -9,7 +9,6 @@
 #include <unistd.h>
 #include <string.h>
 #include <time.h>
-#include "windows.h"
 #include "winbase.h"
 #include "winerror.h"
 #include "process.h"
diff --git a/files/dos_fs.c b/files/dos_fs.c
index 22c0ed2d479ee41de2c74e73b4428426f02528a8..baf55666c1aacef88f32e54d3813b9058f39c2eb 100644
--- a/files/dos_fs.c
+++ b/files/dos_fs.c
@@ -19,7 +19,9 @@
 #include <time.h>
 #include <unistd.h>
 
-#include "windows.h"
+#include "windef.h"
+#include "winuser.h"
+#include "wine/winbase16.h"
 #include "winerror.h"
 #include "drive.h"
 #include "file.h"
diff --git a/files/file.c b/files/file.c
index 9768cac1d1fb7164f2fd4b9f73b2cb86ebb2b9e4..c596564d10f32e3f575bb3ef869fe15fc008c48b 100644
--- a/files/file.c
+++ b/files/file.c
@@ -24,8 +24,11 @@
 #include <unistd.h>
 #include <utime.h>
 
-#include "windows.h"
 #include "winerror.h"
+#include "windef.h"
+#include "winbase.h"
+#include "wine/winbase16.h"
+#include "wine/winestring.h"
 #include "drive.h"
 #include "device.h"
 #include "file.h"
diff --git a/files/profile.c b/files/profile.c
index 8f4943e9381f7b3b45b12b27b94ee271811f8d2b..05c67f3590f79ffbe015f177dc58de03756adf1e 100644
--- a/files/profile.c
+++ b/files/profile.c
@@ -11,7 +11,9 @@
 
 #include <sys/stat.h>
 
-#include "windows.h"
+#include "winbase.h"
+#include "wine/winbase16.h"
+#include "winuser.h"
 #include "file.h"
 #include "heap.h"
 #include "debug.h"
diff --git a/graphics/metafiledrv/init.c b/graphics/metafiledrv/init.c
index cfb105ce88aea2220d1e3bf297c42ad4b519ff42..149607f3823f1c5259df52b5ce139fb55abaf8d0 100644
--- a/graphics/metafiledrv/init.c
+++ b/graphics/metafiledrv/init.c
@@ -4,11 +4,13 @@
  * Copyright 1996 Alexandre Julliard
  */
 
-#include "metafiledrv.h"
+#include "windef.h"
+#include "wine/winbase16.h"
 #include "dc.h"
 #include "heap.h"
 #include "global.h"
 #include "metafile.h"
+#include "metafiledrv.h"
 #include "debug.h"
 
 #include <string.h>
diff --git a/if1632/snoop.c b/if1632/snoop.c
index 5e0f6118ef36ae959ae6cc912d0945a57e29a665..d560e3c3a69b8a95415197fe6de9630e481a8345 100644
--- a/if1632/snoop.c
+++ b/if1632/snoop.c
@@ -5,6 +5,7 @@
  */
 
 #include <assert.h>
+#include <string.h>
 #include "windows.h"
 #include "winbase.h"
 #include "winnt.h"
diff --git a/if1632/thunk.c b/if1632/thunk.c
index e31379d1087059620b218fac513a63ec212f864a..ff1fbe9bd947f2575a5fa7ff48e3ba403b8348ae 100644
--- a/if1632/thunk.c
+++ b/if1632/thunk.c
@@ -5,14 +5,14 @@
  * Copyright 1998       Ulrich Weigand
  */
 
-#include "windows.h"
+#include <string.h>
+#include "wine/winbase16.h"
 #include "wine/winuser16.h"
+#include "hook.h"
 #include "callback.h"
-#include "resource.h"
 #include "task.h"
 #include "user.h"
 #include "heap.h"
-#include "hook.h"
 #include "module.h"
 #include "process.h"
 #include "stackframe.h"
diff --git a/include/button.h b/include/button.h
index 64c1c087396b1ed1945f872904834a26806f0f44..377f1b2160e86a718b324649c90a2af222cd540c 100644
--- a/include/button.h
+++ b/include/button.h
@@ -7,7 +7,7 @@
 #ifndef __WINE_BUTTON_H
 #define __WINE_BUTTON_H
 
-#include "windows.h"
+#include "wingdi.h"
 
   /* Extra info for BUTTON windows */
   /* Note: under MS-Windows, state is a BYTE and this structure is */
diff --git a/include/cdrom.h b/include/cdrom.h
index caeb8171d649febce6cb7087702ae9406d02b07d..0c3405460d2ee712d03c2d5b13cba7f312a17330 100644
--- a/include/cdrom.h
+++ b/include/cdrom.h
@@ -6,13 +6,13 @@
  * Copyright 1999 Eric Pouech
  */
 
-#include <stdlib.h>
-#include <unistd.h>
-#include "winbase.h"
-
 #ifndef __WINE_CDROM_H__
 #define __WINE_CDROM_H__
 
+#include <stdlib.h>
+#include <unistd.h>
+#include "wintypes.h"
+
 #ifdef HAVE_LINUX_CDROM_H
 # include <linux/cdrom.h>
 #endif
diff --git a/include/class.h b/include/class.h
index 32dc589ef1548a3e1d8c8677c035285e7d797f5f..8d4ade69ca811457fa20f53667bf9afa6f586113 100644
--- a/include/class.h
+++ b/include/class.h
@@ -7,7 +7,7 @@
 #ifndef __WINE_CLASS_H
 #define __WINE_CLASS_H
 
-#include "windows.h"
+#include "wintypes.h"
 #include "winproc.h"
 
 #define CLASS_MAGIC   ('C' | ('L' << 8) | ('A' << 16) | ('S' << 24))
diff --git a/include/console.h b/include/console.h
index 6746a18f5f0ed68c6ec10a6d3af04cb38ce7038e..6b5e4a991736266dc5968e2fe1ba3fad27470d62 100644
--- a/include/console.h
+++ b/include/console.h
@@ -9,7 +9,6 @@
 #define CONSOLE_H
 
 #include <stdio.h>
-
 #include "config.h"
 
 /* Can we compile with curses/ncurses? */
diff --git a/include/cursoricon.h b/include/cursoricon.h
index 24fc398a9a2f08c77421b8190a739a3439cf60b3..92d5c70c5eb79ad91a23ecba9d996f288c9ab12d 100644
--- a/include/cursoricon.h
+++ b/include/cursoricon.h
@@ -7,7 +7,7 @@
 #ifndef __WINE_CURSORICON_H
 #define __WINE_CURSORICON_H
 
-#include "windows.h"
+#include "wingdi.h"
 
 #pragma pack(1)
 
diff --git a/include/dce.h b/include/dce.h
index 089ad22cd8d959f582a2bac91858ed3e5fa9d18b..506bfedacf29a57c522e6ba6c0df715b8dc630da 100644
--- a/include/dce.h
+++ b/include/dce.h
@@ -7,7 +7,6 @@
 #ifndef __WINE_DCE_H
 #define __WINE_DCE_H
 
-#include "windows.h"
 #include "win.h"
 
 /* additional DCX flags 
diff --git a/include/ddraw.h b/include/ddraw.h
index 63c148a592fdb47e5ea05bc269502ac93fae821d..fb973c4a10b2c6e77c02b68b85115aacd7009935 100644
--- a/include/ddraw.h
+++ b/include/ddraw.h
@@ -6,6 +6,8 @@
 #include <X11/extensions/XShm.h>
 #endif /* defined(HAVE_LIBXXSHM) */
 
+#include "winbase.h" /* LARGE_INTEGER ... */
+#include "wingdi.h" /* PALETTE stuff ... */
 #include "wine/obj_base.h"
 
 #ifndef	DIRECTDRAW_VERSION
diff --git a/include/debugger.h b/include/debugger.h
index c490e9d1521ab4fdea4aece441e99d4eb1ebe83f..ec12229f74855c01c585a543d9f84fc6cd04c202 100644
--- a/include/debugger.h
+++ b/include/debugger.h
@@ -7,10 +7,9 @@
 #ifndef __WINE_DEBUGGER_H
 #define __WINE_DEBUGGER_H
 
-#include "winnt.h"
-#include "selectors.h"
+#include <sys/types.h> /* u_long ... */
+#include "wintypes.h"
 #include "sig_context.h"
-#include "pe_image.h"
 #include "miscemu.h"
 
 #define STEP_FLAG 0x100 /* single step flag */
diff --git a/include/desktop.h b/include/desktop.h
index 21e7e6ee80cd361dc0b17bbffadf54cecc094325..fa49ffa270826fe640cae2b91b856e791080ba1b 100644
--- a/include/desktop.h
+++ b/include/desktop.h
@@ -7,7 +7,7 @@
 #ifndef __WINE_DESKTOP_H
 #define __WINE_DESKTOP_H
 
-#include "windows.h"
+#include "wintypes.h"
 
 struct tagMONITOR;
 
diff --git a/include/dialog.h b/include/dialog.h
index ac3a14d30b1b545eaccb195830a6ca0e41a106a6..fae9c9b1e90a58a03399c7c9a7ad6b446474fe29 100644
--- a/include/dialog.h
+++ b/include/dialog.h
@@ -7,7 +7,6 @@
 #ifndef __WINE_DIALOG_H
 #define __WINE_DIALOG_H
 
-#include "windows.h"
 #include "winproc.h"
 
   /* Dialog info structure.
diff --git a/include/dinput.h b/include/dinput.h
index b9c0f77b7004a3c6070e9be170db5d28d673be6e..3a5a7ade01e049bf7771bc8d92ae23dff9e009bf 100644
--- a/include/dinput.h
+++ b/include/dinput.h
@@ -1,9 +1,10 @@
 #ifndef _WINE_DINPUT_H
 #define _WINE_DINPUT_H
 
+#include "windef.h" /* for MAX_PATH */
+#include "wintypes.h"
 #include "unknwn.h"
 #include "mouse.h"
-#include "windef.h" /* for MAX_PATH */
 
 #define STDMETHOD(xfn) HRESULT (CALLBACK *fn##xfn)
 #define STDMETHOD_(ret,xfn) ret (CALLBACK *fn##xfn)
diff --git a/include/dosexe.h b/include/dosexe.h
index 9da24374509d0ddb6bf6ace534f2638f1dc27074..1b18ab8a86c9eb22a8117bbddc6276d870ab354c 100644
--- a/include/dosexe.h
+++ b/include/dosexe.h
@@ -7,11 +7,9 @@
 #ifndef __WINE_DOSEXE_H
 #define __WINE_DOSEXE_H
 
-#include <sys/types.h>
-#include "windows.h"
-#include "winnt.h"
-#include "sig_context.h"
+#include <sys/types.h> /* pid_t */
 #include "wintypes.h"
+#include "sig_context.h"
 
 typedef struct _DOSTASK {
  LPVOID img;
diff --git a/include/dsound.h b/include/dsound.h
index eb167126bd0ab370d19957929389c1433543f438..fd7ab964021914d1781061379a459fd411045037 100644
--- a/include/dsound.h
+++ b/include/dsound.h
@@ -1,8 +1,7 @@
 #ifndef __WINE_DSOUND_H
 #define __WINE_DSOUND_H
 
-#include "windows.h"
-#include "winbase.h"
+#include "wintypes.h"
 #include "mmsystem.h"
 #include "d3d.h"			/*FIXME: Need to break out d3dtypes.h */
 
diff --git a/include/file.h b/include/file.h
index f1882913a86e072064f08d22991b0cd72d23be34..a38ae070189a6cfa9e5f825f9c66582b5b7381d2 100644
--- a/include/file.h
+++ b/include/file.h
@@ -7,8 +7,7 @@
 #ifndef __WINE_FILE_H
 #define __WINE_FILE_H
 
-#include <time.h>
-#include "windows.h"
+#include <time.h> /* time_t */
 #include "k32obj.h"
 
 #define MAX_PATHNAME_LEN   1024
diff --git a/include/gdi.h b/include/gdi.h
index 8b2c3798b3b9227fd8af34ab7866b042a72e29f2..5910cd60996ea25b4dbf12c000dc30731f0310b9 100644
--- a/include/gdi.h
+++ b/include/gdi.h
@@ -7,7 +7,8 @@
 #ifndef __WINE_GDI_H
 #define __WINE_GDI_H
 
-#include "windows.h"
+#include "wintypes.h"
+#include "wingdi.h"
 #include "ldt.h"
 #include "local.h"
 #include "path.h"
diff --git a/include/heap.h b/include/heap.h
index 84f6dc25a37ae23292cf8ccb2a521f4b327c779b..5700d1dcb24df8bda1c7c3ec2fe21813f88b7241 100644
--- a/include/heap.h
+++ b/include/heap.h
@@ -8,7 +8,6 @@
 #define __WINE_HEAP_H
 
 #include "winbase.h"
-#include "winnt.h"
 
 extern HANDLE32 SystemHeap;
 extern HANDLE32 SegptrHeap;
diff --git a/include/hook.h b/include/hook.h
index fcf3fc7bd00e0faf51e9547e29ee692bb925acb8..9d53a110041459cf7e099b0dd362051a04f60455 100644
--- a/include/hook.h
+++ b/include/hook.h
@@ -7,7 +7,7 @@
 #ifndef __WINE_HOOK_H
 #define __WINE_HOOK_H
 
-#include "windows.h"
+#include "wintypes.h"
 
 #define HOOK_WIN16	0x00
 #define HOOK_WIN32A	0x01
diff --git a/include/imagehlp.h b/include/imagehlp.h
index 34949b2ed49bba7a4ec0d780f1b71ec03c760390..53897be009043b96d2a39ff277102b079e17a69a 100644
--- a/include/imagehlp.h
+++ b/include/imagehlp.h
@@ -5,9 +5,9 @@
 #ifndef __WINE_IMAGEHLP_H
 #define __WINE_IMAGEHLP_H
 
-#include "toolhelp.h"
-#include "winnt.h"
 #include "wintypes.h"
+#include "windef.h"
+#include "winbase.h"
 
 /***********************************************************************
  * Types
diff --git a/include/imagelist.h b/include/imagelist.h
index e20e4aba7f1d5665d823ce0c78de13cb9c6c30da..7db2bfa52ec5d7890969a51cc7be656a9b52b52c 100644
--- a/include/imagelist.h
+++ b/include/imagelist.h
@@ -8,7 +8,7 @@
 #define __WINE_IMAGELIST_H
 
 #include "wingdi.h"
- 
+
 struct _IMAGELIST
 {
     HBITMAP32 hbmImage;
diff --git a/include/ipaddress.h b/include/ipaddress.h
index 20e0e3943e92fc3c34bffe5f28c693e808906a35..1c2a33605dce2db46f5c7030e3b15ad0c9282355 100644
--- a/include/ipaddress.h
+++ b/include/ipaddress.h
@@ -8,10 +8,6 @@
 #ifndef __WINE_IPADDRESS_H
 #define __WINE_IPADDRESS_H
 
-#include "win.h"
-
-
-
 typedef struct tagIPADDRESS_INFO
 {
 	BYTE LowerLimit[4];
diff --git a/include/k32obj.h b/include/k32obj.h
index 281b3ed996e4a52289caad5ddf87f4f957c27b63..52941448d7565677e6b0dd21e2749c2787816af0 100644
--- a/include/k32obj.h
+++ b/include/k32obj.h
@@ -8,7 +8,7 @@
 #define __WINE_K32OBJ_H
 
 #include "wintypes.h"
-#include "windows.h"
+#include "winbase.h" /* SECURITY_ATTRIBUTES */
 
 /* Object types */
 typedef enum
diff --git a/include/libres.h b/include/libres.h
index d70ef875030576477df02f49ef8ce51fb542a03b..6b1e57ddb0a0e38a877e3588f90636d884a4b526 100644
--- a/include/libres.h
+++ b/include/libres.h
@@ -5,7 +5,6 @@
 #define __WINE_LIBRES_H
 
 #include "wintypes.h"
-#include "resource.h"
 
 extern HRSRC32 LIBRES_FindResource( HINSTANCE32 hModule, LPCWSTR name, LPCWSTR type );
 extern HGLOBAL32 LIBRES_LoadResource( HINSTANCE32 hModule, HRSRC32 hRsrc );
diff --git a/include/lzexpand.h b/include/lzexpand.h
index fb605ab711c3429b04bcaffdf9bde076b826ac85..e3198fb8e714a62293bea55145788e57dd08e82e 100644
--- a/include/lzexpand.h
+++ b/include/lzexpand.h
@@ -7,7 +7,7 @@
 #ifndef __WINE_LZEXPAND_H
 #define __WINE_LZEXPAND_H
 
-#include "winbase.h"
+#include "wintypes.h"
 
 #define LZERROR_BADINHANDLE	-1	/* -1 */
 #define LZERROR_BADOUTHANDLE	-2	/* -2 */
diff --git a/include/mdi.h b/include/mdi.h
index b66a516602d8fb49e3c08f6cf2559353f7cd3927..074d45802bcc8acaff507f331a8aad38d94b68e6 100644
--- a/include/mdi.h
+++ b/include/mdi.h
@@ -9,7 +9,7 @@
 #ifndef __WINE_MDI_H
 #define __WINE_MDI_H
 
-#include "windows.h"
+#include "wintypes.h"
 
 #define MDI_MAXLISTLENGTH	0x40
 #define MDI_MAXTITLELENGTH	0xA1
diff --git a/include/message.h b/include/message.h
index 0a6b7adcc738a53bf15240b593b654dbbcbb460c..63b3259d0cbaaba6f4e03a4e3a697f2139cff558 100644
--- a/include/message.h
+++ b/include/message.h
@@ -9,7 +9,6 @@
 
 #include "win.h"
 #include "queue.h"
-#include "wintypes.h"
 
 extern DWORD MSG_WineStartTicks;  /* Ticks at Wine startup */
 
diff --git a/include/metafile.h b/include/metafile.h
index c6747189284d972760ba76d4a770c1097a9bd6a4..f33446534707393294be7d1ce54fb8b08511a411 100644
--- a/include/metafile.h
+++ b/include/metafile.h
@@ -7,7 +7,8 @@
 #ifndef __WINE_METAFILE_H
 #define __WINE_METAFILE_H
 
-#include "windows.h"
+#include "wingdi.h"
+#include "gdi.h"
 
 #define MFHEADERSIZE (sizeof(METAHEADER))
 #define MFVERSION 0x300
diff --git a/include/metafiledrv.h b/include/metafiledrv.h
index d62f4228a9c81292a742e671e8e9944c7f44c802..968651625097cc4393f2518d22f4e7dfbaa8fd15 100644
--- a/include/metafiledrv.h
+++ b/include/metafiledrv.h
@@ -5,7 +5,7 @@
 #ifndef __WINE_METAFILEDRV_H
 #define __WINE_METAFILEDRV_H
 
-#include "windows.h"
+#include "wingdi.h"
 #include "gdi.h"
 
 /* FIXME: SDK docs says these should be 1 and 2 */
diff --git a/include/miscemu.h b/include/miscemu.h
index 49992a685cb7f8c4b80fbde73561edea9122e7df..d7a1846be2ad480d05bf1f11a81bab3ecc3b3f79 100644
--- a/include/miscemu.h
+++ b/include/miscemu.h
@@ -7,7 +7,6 @@
 #ifndef __WINE_MISCEMU_H
 #define __WINE_MISCEMU_H
 
-#include <stdio.h>
 #include "winnt.h"
 #include "ldt.h"
 
diff --git a/include/mmreg.h b/include/mmreg.h
index b54994b9ad2713684741c0881875f84fd72be1a2..d39bfd8b0c7e399b0a0f978da1c883f2f372273b 100644
--- a/include/mmreg.h
+++ b/include/mmreg.h
@@ -2,7 +2,6 @@
  *      mmreg.h   -       Declarations for ???
  */
 
-#include "wintypes.h"
 
 /***********************************************************************
  * Defines/Enums
@@ -11,6 +10,8 @@
 #ifndef _ACM_WAVEFILTER
 #define _ACM_WAVEFILTER
 
+#include "wintypes.h"
+
 #define WAVE_FILTER_UNKNOWN     0x0000
 #define WAVE_FILTER_DEVELOPMENT 0xFFFF
 
diff --git a/include/module.h b/include/module.h
index a851e71bee31fae40db5e9a0ff471cff4aa2cb3a..55894224715bc2463c8421dc9eb6347476ff507e 100644
--- a/include/module.h
+++ b/include/module.h
@@ -7,9 +7,9 @@
 #ifndef __WINE_MODULE_H
 #define __WINE_MODULE_H
 
+#include "wintypes.h"
 #include "dosexe.h"
 #include "pe_image.h"
-#include "wintypes.h"
 
   /* In-memory module structure. See 'Windows Internals' p. 219 */
 typedef struct _NE_MODULE
diff --git a/include/msdos.h b/include/msdos.h
index 82549e9d871c1be6a250d37634f8524b052369a2..052cffa8a6ea90ab0cf64c05f16148770862414c 100644
--- a/include/msdos.h
+++ b/include/msdos.h
@@ -1,11 +1,8 @@
 #ifndef __WINE_MSDOS_H
 #define __WINE_MSDOS_H
 
-#include <sys/types.h>
-#include <dirent.h>
-#include "windows.h"
-#include "comm.h"
 #include "winnt.h"
+#include "comm.h"
 
 struct fcb {
         BYTE drive;
diff --git a/include/ntdll.h b/include/ntdll.h
index ccc36495f72b81cc37ce26f02374040115e2efde..2fb7a08d146c0060ec228eac784d445bf84d6d2b 100644
--- a/include/ntdll.h
+++ b/include/ntdll.h
@@ -9,8 +9,6 @@
 
 #include "winbase.h"
 
-/* assumes windows.h already included */
-
 #ifdef __cplusplus
 extern "C" {
 #endif
diff --git a/include/ole.h b/include/ole.h
index f6246202ef542238923dc78b35829d8a4c738fd1..a71dfe5fc90489409fe2fec40676b559ba51e32b 100644
--- a/include/ole.h
+++ b/include/ole.h
@@ -5,7 +5,7 @@
 #ifndef __WINE_OLE_H
 #define __WINE_OLE_H
 
-#include "wingdi.h"
+#include "wingdi.h" /* LOGPALETTE */
 
 /* FIXME: we need to include wtypes.h mainly, it seems, because we need BSTR. 
  * Normally none of the APIs in ole.h depend on it. It is most likey that they should 
diff --git a/include/ole2.h b/include/ole2.h
index 3acb26e1dbef57a2159af479a1d27d1b4949a8a5..2bf87208c3915fc2b1fc41a2e4a48aab42a8e467 100644
--- a/include/ole2.h
+++ b/include/ole2.h
@@ -5,8 +5,8 @@
 #ifndef __WINE_OLE2_H
 #define __WINE_OLE2_H
 
-#include "oleidl.h"
 #include "wintypes.h"
+#include "oleidl.h"
 
 /* OLE version */
 #define rmm             23
diff --git a/include/pe_image.h b/include/pe_image.h
index d0ea88d6d35a58f36103da9d7e939f9b6aa6c1e7..88084d8736514cd3a390f0b9e39aa65391602dda 100644
--- a/include/pe_image.h
+++ b/include/pe_image.h
@@ -1,11 +1,9 @@
 #ifndef __WINE_PE_IMAGE_H
 #define __WINE_PE_IMAGE_H
 
-#include <sys/types.h>
-#include "windows.h"
-#include "winnt.h"
+#include "wintypes.h"
+#include "winbase.h"
 #include "peexe.h"
-
 /* modreference used for attached processes
  * all section are calculated here, relocations etc.
  */
diff --git a/include/peexe.h b/include/peexe.h
index 2a728eee69e3db771b3f179c58c8bc1268eeb585..fce3669081452c253ca34b390d8528829b2ca29b 100644
--- a/include/peexe.h
+++ b/include/peexe.h
@@ -5,7 +5,6 @@
 #define __WINE_PEEXE_H
 
 #include "wintypes.h"
-#include "neexe.h"
 
 typedef struct _IMAGE_FILE_HEADER {
 	WORD	Machine;			/* 00 */
diff --git a/include/process.h b/include/process.h
index f24e8d79048935c8ed18205b5220c019f7f32c0a..6f323ceebd99fe5dfe6766ec4548c5d1afced8dc 100644
--- a/include/process.h
+++ b/include/process.h
@@ -7,9 +7,7 @@
 #ifndef __WINE_PROCESS_H
 #define __WINE_PROCESS_H
 
-#include "windows.h"
-#include "winbase.h"
-#include "winnt.h"
+#include "wintypes.h"
 #include "module.h"
 #include "k32obj.h"
 
diff --git a/include/progress.h b/include/progress.h
index e26981004eaac1f6b6620532c26bbbee9f187d9c..2d506f253c1f7a090b1db8dfcb07e60040083a0a 100644
--- a/include/progress.h
+++ b/include/progress.h
@@ -7,9 +7,6 @@
 #ifndef __WINE_PROGRESS_H
 #define __WINE_PROGRESS_H
 
-#include "windows.h"
-#include "commctrl.h"
-
 typedef struct
 {
   INT32       CurVal;       /* Current progress value */
diff --git a/include/prsht.h b/include/prsht.h
index 21dae924252702ae3e4bd6980df7688d60c79a94..6a8472f30732e2e9084efcc77409429f335b72e3 100644
--- a/include/prsht.h
+++ b/include/prsht.h
@@ -1,6 +1,7 @@
 #ifndef _WINE_PRSHT_H
 #define _WINE_PRSHT_H
 
+#include "winuser.h"
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/include/psdrv.h b/include/psdrv.h
index cfc6c340427908e3579b4b4728bcaa92705791e3..110e1dbe822b5c2e14c465d94ab52ff792ff3c8f 100644
--- a/include/psdrv.h
+++ b/include/psdrv.h
@@ -6,7 +6,7 @@
  *
  *	Copyright 1998  Huw D M Davies
  */
-#include "windows.h"
+#include "wingdi.h"
 #include "font.h"
 #include "pen.h"
 #include "brush.h"
diff --git a/include/queue.h b/include/queue.h
index 5762fe0389594a521bc14b2fddddabb09d678729..8a9836baba5117fc1e089e225ebebd0003c2b664 100644
--- a/include/queue.h
+++ b/include/queue.h
@@ -7,8 +7,8 @@
 #ifndef __WINE_QUEUE_H
 #define __WINE_QUEUE_H
 
+#include "wintypes.h"
 #include "wine/winuser16.h"
-#include "windows.h"
 #include "thread.h"
 
 
diff --git a/include/region.h b/include/region.h
index 2d7be1156892caa4eae44135f72c2e0f777870fe..d296f4877e138d103369ef895ae75873ae7d0180 100644
--- a/include/region.h
+++ b/include/region.h
@@ -54,7 +54,7 @@ SOFTWARE.
 #ifndef __WINE_REGION_H
 #define __WINE_REGION_H
 
-#include "windows.h"
+#include "wingdi.h"
 #include "gdi.h"
 
 
diff --git a/include/resource.h b/include/resource.h
index 430763c786a290dfb372f1f1a6c936a642e8fdd8..fdda758f2a648732631f810834ce238bdd908ef4 100644
--- a/include/resource.h
+++ b/include/resource.h
@@ -7,8 +7,6 @@
 #ifndef __WINE_RESOURCE_H
 #define __WINE_RESOURCE_H
 
-#include "windows.h"
-
 #ifndef __WRC_RSC_H
 #include "wrc_rsc.h"
 #endif
diff --git a/include/scroll.h b/include/scroll.h
index 2b8df751601ff0662bd5efa840858c4f4de69e8e..eace4bbf03bac8231e72ee81fd5c504a40c497f1 100644
--- a/include/scroll.h
+++ b/include/scroll.h
@@ -8,7 +8,7 @@
 #ifndef __WINE_SCROLL_H
 #define __WINE_SCROLL_H
 
-#include "windows.h"
+#include "wintypes.h"
 
 typedef struct
 {
diff --git a/include/shell.h b/include/shell.h
index 0ccd1df6ea5b74cb2c672a2cb5a11f0c20a19b14..b6f488fdbcca350aea33478d90699c65312be980 100644
--- a/include/shell.h
+++ b/include/shell.h
@@ -4,9 +4,8 @@
 #ifndef __WINE_SHELL_H
 #define __WINE_SHELL_H
 
-#include "windows.h"
-#include "winreg.h"
-#include "imagelist.h"
+#include "wintypes.h"
+#include "windef.h"
 
 
 /****************************************************************************
diff --git a/include/shlobj.h b/include/shlobj.h
index 5d0859839e88a4c803c66b6137c2c606ab9f13b1..90469ac5c9016ec8707b52916b2cb068fa22a199 100644
--- a/include/shlobj.h
+++ b/include/shlobj.h
@@ -1,14 +1,12 @@
 #ifndef __WINE_SHLOBJ_H
 #define __WINE_SHLOBJ_H
 
+#include "wintypes.h"
 #include "wine/obj_base.h"
 #include "shell.h"
-#include "ole.h"
-#include "ole2.h"
 #include "oleobj.h"
 #include "commctrl.h"
 #include "prsht.h"
-#include "wintypes.h"
 
 #define STDMETHOD(xfn) HRESULT (CALLBACK *fn##xfn)
 #define STDMETHOD_(type,xfn) type (CALLBACK *fn##xfn)
diff --git a/include/stackframe.h b/include/stackframe.h
index 24cad98bf80431f532446bdb5cb8bd8e565458c4..0326abd97f2a737eed6c514d5b6e88e403aa0159 100644
--- a/include/stackframe.h
+++ b/include/stackframe.h
@@ -7,8 +7,6 @@
 #ifndef __WINE_STACKFRAME_H
 #define __WINE_STACKFRAME_H
 
-#include <string.h>
-#include "windows.h"
 #include "ldt.h"
 #include "thread.h"
 
diff --git a/include/static.h b/include/static.h
index f29dd7b6bdbda0d8402ce0a80e4a63d4f8c1a9bf..54484bfd89134a64eb2d77d29ef21d6db26c689e 100644
--- a/include/static.h
+++ b/include/static.h
@@ -7,7 +7,7 @@
 #ifndef __WINE_STATIC_H
 #define __WINE_STATIC_H
 
-#include "windows.h"
+#include "wintypes.h"
 
   /* Extra info for STATIC windows */
 typedef struct
diff --git a/include/stress.h b/include/stress.h
index f38857e4fba7cd39993e941a799c8a82663fa5b3..6f955b66865a8e6aaa7c810b7957237b0175c57c 100644
--- a/include/stress.h
+++ b/include/stress.h
@@ -1,7 +1,7 @@
 #ifndef __WINE_STRESS_H
 #define __WINE_STRESS_H
 
-#include <windows.h>
+#include <wintypes.h>
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/include/struct32.h b/include/struct32.h
index 71dc16c93d275cb1f4223a3a25bc5519807a3b5a..f714588c239cc73bca9f7ae17db85447e13783e9 100644
--- a/include/struct32.h
+++ b/include/struct32.h
@@ -1,7 +1,8 @@
 /* Structure definitions for Win32 -- used only internally */
 #ifndef __WINE__STRUCT32_H
 #define __WINE__STRUCT32_H
-#include "windows.h"
+
+#include "winbase.h"
 #include "queue.h"
 
 extern void STRUCT32_MINMAXINFO32to16( const MINMAXINFO32*, MINMAXINFO16* );
diff --git a/include/sysmetrics.h b/include/sysmetrics.h
index bfb6cf3d3a75501ec8bc4b3c08f01946c91b076c..24d7307ca290fc8c5a2a1f5869eacaf7f64b8e03 100644
--- a/include/sysmetrics.h
+++ b/include/sysmetrics.h
@@ -7,9 +7,7 @@
 #ifndef __WINE_SYSMETRICS_H
 #define __WINE_SYSMETRICS_H
 
-#include "windows.h"
-
-
+#include "wingdi.h"
   /* Constant system metrics */
 #if 0
 #ifdef WIN_95_LOOK
diff --git a/include/thread.h b/include/thread.h
index 123866411be7a648b66435cec2d86017bfffadf8..8832361c73e6c81b42847ae48aa7acba9734b34d 100644
--- a/include/thread.h
+++ b/include/thread.h
@@ -9,7 +9,6 @@
 
 #include "config.h"
 #include "k32obj.h"
-#include "windows.h"
 #include "winbase.h"
 #include "winnt.h"
 #include "selectors.h"  /* for SET_FS */
diff --git a/include/tlhelp32.h b/include/tlhelp32.h
index b8b798a087bc837aa2f3d65ba9755ce99e9b5c2e..b28d4ccac7bb4bcf5265b1b8cb6a06fa44b953ad 100644
--- a/include/tlhelp32.h
+++ b/include/tlhelp32.h
@@ -1,7 +1,7 @@
 #ifndef __WINE_TLHELP32_H
 #define __WINE_TLHELP32_H
 
-#include "windows.h"
+#include "wintypes.h"
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/include/toolhelp.h b/include/toolhelp.h
index 8b422a926c8873d430bc65da546e4413cef744d3..1286d3d9d1ac5d6f6e1250666b5623700d644cba 100644
--- a/include/toolhelp.h
+++ b/include/toolhelp.h
@@ -1,7 +1,7 @@
 #ifndef __WINE_TOOLHELP_H
 #define __WINE_TOOLHELP_H
 
-#include "windows.h"
+#include "windef.h"
 #include "tlhelp32.h"
 
 #define MAX_DATA	11
diff --git a/include/updown.h b/include/updown.h
index 6256f19148ced523274ceb58f086b215b4ffafa2..dbb597ca003bc2dc3e7f095b4796ba6c2437b9e7 100644
--- a/include/updown.h
+++ b/include/updown.h
@@ -7,9 +7,6 @@
 #ifndef __WINE_UPDOWN_H
 #define __WINE_UPDOWN_H
 
-#include "windows.h"
-#include "commctrl.h"
-
 typedef struct
 {
   UINT32      AccelCount;   /* Number of elements in AccelVect */
diff --git a/include/ver.h b/include/ver.h
index 04802c54aef13fe8e001ae1fa6002f4b59aeee21..f0bab9dce3171756b9c77102c29c9c766209c99b 100644
--- a/include/ver.h
+++ b/include/ver.h
@@ -5,7 +5,7 @@
 #ifndef __WINE_VER_H
 #define __WINE_VER_H
 
-#include "windows.h"
+#include "wintypes.h"
 
 /* resource ids for different version infos */
 #define	VS_FILE_INFO	MAKEINTRESOURCE16(16)
diff --git a/include/vfw.h b/include/vfw.h
index 6375419fa05fd1f34f83aa93c6a68a65e799b82f..1bad21570d6a4bcd6fc346711ea82fca881499ca 100644
--- a/include/vfw.h
+++ b/include/vfw.h
@@ -1,9 +1,10 @@
 #ifndef __WINE_VFW_H
 #define __WINE_VFW_H
 
-#include <wintypes.h>
-#include <driver.h>
-#include <objbase.h>
+#include "wintypes.h"
+#include "wingdi.h"
+#include "driver.h"
+#include "objbase.h"
 
 #define VFWAPI	WINAPI
 #define VFWAPIV	WINAPIV
diff --git a/include/win.h b/include/win.h
index 5fe5431dc51636a38c66968f31a5a9d766e546e5..fad66763111b2891defc18fbdb29ddd0c923a472 100644
--- a/include/win.h
+++ b/include/win.h
@@ -7,12 +7,8 @@
 #ifndef __WINE_WIN_H
 #define __WINE_WIN_H
 
-#include "class.h"
-#include "ldt.h"
-#include "windows.h"
-#include "winproc.h"
 #include "queue.h"
-
+#include "class.h"
 
 #define WND_MAGIC     0x444e4957  /* 'WIND' */
 
diff --git a/include/win16drv.h b/include/win16drv.h
index 8ff174b56b6f9beee5a6051a4d9940c85b387e29..8f943e8f29df9084d3f09f20657c663e2523360c 100644
--- a/include/win16drv.h
+++ b/include/win16drv.h
@@ -5,7 +5,7 @@
 #ifndef __WINE_WIN16DRV_H
 #define __WINE_WIN16DRV_H
 
-#include "windows.h"
+#include "wingdi.h"
 #include "gdi.h"
 
 #define SETHIGHBIT 
diff --git a/include/wine/obj_moniker.h b/include/wine/obj_moniker.h
index e42c4802b6c3461e12da4955a59ebbe6b50e38ba..91565ddc0a313bd748638ba740f69ecedb220b15 100644
--- a/include/wine/obj_moniker.h
+++ b/include/wine/obj_moniker.h
@@ -5,11 +5,11 @@
  */
 
 
-#include "wine/obj_misc.h"
 
 #ifndef __WINE_WINE_OBJ_MONIKER_H
 #define __WINE_WINE_OBJ_MONIKER_H
 
+#include "wine/obj_misc.h"
 /*****************************************************************************
  * Predeclare the interfaces
  */
diff --git a/include/wine/w32skrnl.h b/include/wine/w32skrnl.h
index e5dd12892c9f7c6fb28fd91bc68a1dd330e360f3..5bc98baae5624745f426e2c5fe2cb17838892805 100644
--- a/include/wine/w32skrnl.h
+++ b/include/wine/w32skrnl.h
@@ -1,7 +1,6 @@
 #ifndef _W32SKRNL_H
 #define _W32SKRNL_H
 #include "wintypes.h"
-HTASK16     WINAPI GetCurrentTask(void);
 LPSTR WINAPI GetWin32sDirectory(void);
 DWORD WINAPI RtlNtStatusToDosError(DWORD error);
 #endif /* _W32SKRNL_H */
diff --git a/include/wine/winbase16.h b/include/wine/winbase16.h
index 1c9f9d17415dca1a690397debbb27e702a757ca4..00c28dbc6e72e051d39f11da497f1830db8f329e 100644
--- a/include/wine/winbase16.h
+++ b/include/wine/winbase16.h
@@ -56,6 +56,7 @@ HANDLE16    WINAPI GetAtomHandle(ATOM);
 HANDLE16    WINAPI GetCodeHandle(FARPROC16);
 VOID        WINAPI GetCodeInfo(FARPROC16,SEGINFO*);
 DWORD       WINAPI GetCurrentPDB(void);
+HTASK16     WINAPI GetCurrentTask(void);
 SEGPTR      WINAPI GetDOSEnvironment(void);
 HMODULE16   WINAPI GetExePtr(HANDLE16);
 WORD        WINAPI GetExeVersion(void);
diff --git a/include/wine/winestring.h b/include/wine/winestring.h
index 298ed8ff8e0cc242c368ae7abcf43a1634c3400e..ee013312a59e052f8ed62c29104f908c148fe9ab 100644
--- a/include/wine/winestring.h
+++ b/include/wine/winestring.h
@@ -1,5 +1,8 @@
 #ifndef _INCLUDE_WINE_STRINGS_H
 #define _INCLUDE_WINE_STRINGS_H
+
+#include "wintypes.h"
+
 INT16       WINAPI WideCharToLocal16(LPSTR,LPWSTR,INT16);
 INT32       WINAPI WideCharToLocal32(LPSTR,LPWSTR,INT32);
 #define			WideCharToLocal WINELIB_NAME(WideCharToLocal)
diff --git a/include/winsock.h b/include/winsock.h
index 13c9b0e38956fabcf228b7151cf534aa45f7d736..6961d9675223ff6d90eb165d789cb15ea924a9c2 100644
--- a/include/winsock.h
+++ b/include/winsock.h
@@ -26,7 +26,7 @@
 # define HAVE_IPX
 #endif
 
-#include "windows.h"
+#include "wintypes.h"
 #include "task.h"
 
 #pragma pack(1)
diff --git a/include/winspool.h b/include/winspool.h
index 87ff118a4a7c2a94e705bf997de60053ef0c4c35..99dc631b005dbc3f082ac6dee5da2a63203fc2d5 100644
--- a/include/winspool.h
+++ b/include/winspool.h
@@ -8,7 +8,9 @@
 #ifndef __WINE_WINSPOOL_H
 #define __WINE_WINSPOOL_H
 
-#include "windows.h"
+#include "wintypes.h"
+#include "winbase.h"
+#include "wingdi.h"
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/include/winver.h b/include/winver.h
index 0fae9b8ef9dcd95cb4023382fe463f6766221c05..a489eb757388d1ba7f6734b070e6ad83efeaafa3 100644
--- a/include/winver.h
+++ b/include/winver.h
@@ -1,6 +1,8 @@
 #ifndef __WINE_WINVER_H
 #define __WINE_WINVER_H
 
+#include "wintypes.h"
+
 DWORD       WINAPI VerFindFile16(UINT16,LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT16*,LPSTR,UINT16*);
 DWORD       WINAPI VerFindFile32A(UINT32,LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT32*,LPSTR,UINT32*);
 DWORD       WINAPI VerFindFile32W(UINT32,LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT32*,LPWSTR,UINT32*);
diff --git a/loader/dos/dosvm.c b/loader/dos/dosvm.c
index 0cf299070c1019e761548eaabb836a55e98d1c6e..59094bf0771a6b99214353a70b31deb0f9ad8bf5 100644
--- a/loader/dos/dosvm.c
+++ b/loader/dos/dosvm.c
@@ -16,8 +16,8 @@
 #include <sys/time.h>
 #include <sys/types.h>
 #include <sys/stat.h>
-#include "windows.h"
-#include "winbase.h"
+
+#include "wine/winbase16.h"
 #include "winnt.h"
 #include "sig_context.h"
 #include "msdos.h"
diff --git a/loader/dos/module.c b/loader/dos/module.c
index 6a11fdc358fb9c9873e6a43dec86591b704a229e..7de55e4971608dd570a3ac32ab7169355f272460 100644
--- a/loader/dos/module.c
+++ b/loader/dos/module.c
@@ -16,9 +16,11 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/time.h>
-#include "windows.h"
-#include "winbase.h"
+#include "windef.h"
+#include "wine/winbase16.h"
 #include "module.h"
+#include "peexe.h"
+#include "neexe.h"
 #include "task.h"
 #include "selectors.h"
 #include "file.h"
diff --git a/loader/elf.c b/loader/elf.c
index 395f603ed5f344f8caa4c3b68ffa316eccf91ec5..9214bebf75cc631fc68f850acd72e1ada47e82aa 100644
--- a/loader/elf.c
+++ b/loader/elf.c
@@ -19,6 +19,7 @@
 #include "windows.h"
 #include "snoop.h"
 #include "process.h"
+#include "neexe.h"
 #include "peexe.h"
 #include "heap.h"
 #include "pe_image.h"
diff --git a/loader/libres.c b/loader/libres.c
index 3579b0a7434f5445bfe47c5b3ec9f68c53295b95..081d09573351d32f2b7a9fbfc2991f98a5629710 100644
--- a/loader/libres.c
+++ b/loader/libres.c
@@ -5,8 +5,9 @@
  */
 
 #include <stdlib.h>
-#include "debug.h"
 #include "libres.h"
+#include "resource.h"
+#include "debug.h"
 #include "heap.h"
 #include "windows.h"
 #include "xmalloc.h"
diff --git a/loader/main.c b/loader/main.c
index fd32ab27af51829f26848ce542eee250d23a950b..062319b1b16e73aa1f9bad8a1a3ad8abad317732 100644
--- a/loader/main.c
+++ b/loader/main.c
@@ -9,9 +9,10 @@
 #include <unistd.h>
 #include <string.h>
 #include <errno.h>
-#include "windows.h"
+#include "wine/winbase16.h"
 #include "bitmap.h"
 #include "comm.h"
+#include "neexe.h"
 #include "win.h"
 #include "main.h"
 #include "menu.h"
diff --git a/loader/module.c b/loader/module.c
index d4b67dcbc660d0b69c8d664681748b48dc62a0b1..802a6ac59440bdaf53d5aff929d21b48b36f76b3 100644
--- a/loader/module.c
+++ b/loader/module.c
@@ -11,6 +11,7 @@
 #include <sys/types.h>
 #include <unistd.h>
 #include "wine/winuser16.h"
+#include "wine/winbase16.h"
 #include "winerror.h"
 #include "class.h"
 #include "file.h"
@@ -22,7 +23,6 @@
 #include "dosexe.h"
 #include "process.h"
 #include "thread.h"
-#include "resource.h"
 #include "selectors.h"
 #include "stackframe.h"
 #include "task.h"
diff --git a/loader/ne/convert.c b/loader/ne/convert.c
index 0d201e6602f323b954bc0debc643a17bcdd4c104..a342072812e1f85a3904f6203351cde7e6c2cd51 100644
--- a/loader/ne/convert.c
+++ b/loader/ne/convert.c
@@ -4,10 +4,10 @@
  * Copyright 1998 Ulrich Weigand
  */
 
+#include "wine/winuser16.h"
 #include "module.h"
 #include "debug.h"
 #include "debugtools.h"
-#include "windows.h"
 
 /**********************************************************************
  *	    ConvertDialog32To16   (KERNEL.615)
diff --git a/loader/ne/module.c b/loader/ne/module.c
index 7fdc0dd5eabfa8741cfd0b164bc7f8a774e90509..0ab40039cb38d3ab9200d4673fcb16a30ec1a489 100644
--- a/loader/ne/module.c
+++ b/loader/ne/module.c
@@ -9,7 +9,11 @@
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#include "wine/winbase16.h"
 #include "module.h"
+#include "neexe.h"
+#include "peexe.h"
+#include "toolhelp.h"
 #include "file.h"
 #include "ldt.h"
 #include "callback.h"
diff --git a/loader/ne/resource.c b/loader/ne/resource.c
index e48cdf703667d535144f99ce33453d0a30c871a9..06e740de72aa673a2e71ed8a60277e6ff605a495 100644
--- a/loader/ne/resource.c
+++ b/loader/ne/resource.c
@@ -13,7 +13,8 @@
 #include <sys/stat.h>
 #include <fcntl.h>
 #include <unistd.h>
-#include "windows.h"
+#include "windef.h"
+#include "wine/winbase16.h"
 #include "global.h"
 #include "ldt.h"
 #include "module.h"
diff --git a/loader/ne/segment.c b/loader/ne/segment.c
index b452266869affe78f5e317bbfea48c3dffadf82a..0fd0605e1244339ebdc649a68c03b11e58a0991f 100644
--- a/loader/ne/segment.c
+++ b/loader/ne/segment.c
@@ -15,8 +15,9 @@
 #include <ctype.h>
 #include <string.h>
 #include <errno.h>
+
+#include "wine/winbase16.h"
 #include "neexe.h"
-#include "windows.h"
 #include "global.h"
 #include "task.h"
 #include "selectors.h"
diff --git a/loader/resource.c b/loader/resource.c
index 1675cadcfa6c719562fbdc395363e51bed244f3e..082bbff61ab83cd0adab5da07e2f9d15f7208f90 100644
--- a/loader/resource.c
+++ b/loader/resource.c
@@ -22,7 +22,6 @@
 #include "process.h"
 #include "module.h"
 #include "file.h"
-#include "resource.h"
 #include "debug.h"
 #include "libres.h"
 #include "winerror.h"
diff --git a/loader/task.c b/loader/task.c
index 0f0e0d476dff90bd9128bd1b7226fbfd2493a073..3bb95add4736cb72167f821123d7d894a9d8355a 100644
--- a/loader/task.c
+++ b/loader/task.c
@@ -9,7 +9,7 @@
 #include <assert.h>
 #include <unistd.h>
 
-#include "windows.h"
+#include "wine/winbase16.h"
 #include "user.h"
 #include "callback.h"
 #include "drive.h"
diff --git a/memory/atom.c b/memory/atom.c
index 6ef828f01da6452f2dd695ffffd7eda8ed4c9410..28d4f4f1428c5df9756eb727701272c8cf094a38 100644
--- a/memory/atom.c
+++ b/memory/atom.c
@@ -16,6 +16,7 @@
 #include <string.h>
 #include <ctype.h>
 
+#include "winuser.h"
 #include "instance.h"
 #include "ldt.h"
 #include "stackframe.h"
diff --git a/memory/environ.c b/memory/environ.c
index 7fa10244d27913fa61f380e6d59e07d13bd6ba83..ab77b12136766decba6c9b244b710708b3a370ac 100644
--- a/memory/environ.c
+++ b/memory/environ.c
@@ -7,6 +7,8 @@
 #include <assert.h>
 #include <stdlib.h>
 #include <string.h>
+#include "winuser.h"
+#include "wine/winestring.h"
 #include "process.h"
 #include "heap.h"
 #include "selectors.h"
diff --git a/misc/commdlg.c b/misc/commdlg.c
index 762a35f12961f135596df757de369c0991b471cc..41f589ece83ad109389e69f6bc089d6173610125 100644
--- a/misc/commdlg.c
+++ b/misc/commdlg.c
@@ -8,14 +8,15 @@
 #include <ctype.h>
 #include <stdlib.h>
 #include <string.h>
+#include "wine/winbase16.h"
 #include "win.h"
 #include "heap.h"
 #include "message.h"
 #include "commdlg.h"
+#include "resource.h"
 #include "dialog.h"
 #include "dlgs.h"
 #include "module.h"
-#include "resource.h"
 #include "drive.h"
 #include "debug.h"
 #include "font.h"
diff --git a/misc/printdrv.c b/misc/printdrv.c
index b201f8e29b5495bbeaac826e498ccbbd38c52731..857e3126c1bd8a96ebdc4be89872ec3eb381883f 100644
--- a/misc/printdrv.c
+++ b/misc/printdrv.c
@@ -8,12 +8,11 @@
 #include <stdlib.h>
 #include <string.h>
 #include <ctype.h>
-#include "windows.h"
-#include "win.h"
+#include "winspool.h"
+#include "ldt.h"
 #include "winerror.h"
 #include "winreg.h"
 #include "debug.h"
-#include "winspool.h"
 
 static char PrinterModel[]	= "Printer Model";
 static char DefaultDevMode[]	= "Default DevMode";
diff --git a/misc/shell.c b/misc/shell.c
index 18090d0adea5354672cd154b8e3315aea2c5733b..0ae8fc1631d99851531784fe6eed1ce4dae7e9d7 100644
--- a/misc/shell.c
+++ b/misc/shell.c
@@ -9,17 +9,19 @@
 #include <unistd.h>
 #include <ctype.h>
 #include "wine/winuser16.h"
+#include "wine/winbase16.h"
+#include "wine/shell16.h"
 #include "winerror.h"
 #include "file.h"
 #include "shell.h"
 #include "heap.h"
 #include "module.h"
 #include "neexe.h"
-#include "resource.h"
 #include "dlgs.h"
 #include "win.h"
 #include "cursoricon.h"
 #include "sysmetrics.h"
+#include "shellapi.h"
 #include "shlobj.h"
 #include "debug.h"
 #include "winreg.h"
diff --git a/misc/spy.c b/misc/spy.c
index e9682bde4d68a0394a5ada115228a14802a3c117..44ccd590235930192e5b0c3708f036182b2d55ac 100644
--- a/misc/spy.c
+++ b/misc/spy.c
@@ -8,6 +8,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include "wine/winuser16.h"
+#include "wine/winbase16.h"
 #include "win.h"
 #include "module.h"
 #include "options.h"
diff --git a/misc/stress.c b/misc/stress.c
index 7a7f9f46bab98f5c22d1103b94862f97b6492897..db380ea80f34af1f4b49375221a1de1462b15f63 100644
--- a/misc/stress.c
+++ b/misc/stress.c
@@ -1,5 +1,4 @@
 #include <limits.h>
-#include "windows.h"
 #include "stress.h"
 #include "debug.h"
 
diff --git a/misc/version.c b/misc/version.c
index 2039e405e1c10602a88fa0730902301d67875546..0c8b2f08f33c715ed30a9777ffc7a9c470d42f31 100644
--- a/misc/version.c
+++ b/misc/version.c
@@ -15,6 +15,7 @@
 #include "options.h"
 #include "debug.h"
 #include "ole.h"
+#include "neexe.h"
 #include "winversion.h"
 
 typedef struct
diff --git a/miscemu/main.c b/miscemu/main.c
index 42e6f42c73f68208a402f77d9196746ec3e1656a..05cd7144b4565cc60f20465520e8d73dcc974866 100644
--- a/miscemu/main.c
+++ b/miscemu/main.c
@@ -4,19 +4,19 @@
  */
 
 #include <assert.h>
+#include "wine/winbase16.h"
 #include "callback.h"
-#include "debug.h"
 #include "debugger.h"
 #include "main.h"
 #include "miscemu.h"
+#include "win16drv.h"
 #include "module.h"
 #include "options.h"
 #include "process.h"
-#include "win16drv.h"
 #include "thread.h"
 #include "task.h"
 #include "stackframe.h"
-#include "windows.h"
+#include "debug.h"
 
 static int MAIN_argc;
 static char **MAIN_argv;
diff --git a/msdos/int2f.c b/msdos/int2f.c
index c8455f7c9841eb3365964cdc8141154d5cc89550..ffb415a76abc988ba5fa159057445499bd17472f 100644
--- a/msdos/int2f.c
+++ b/msdos/int2f.c
@@ -11,6 +11,7 @@
 #include <string.h>
 #include <unistd.h>
 
+#include "wine/winbase16.h"
 #include "ldt.h"
 #include "drive.h"
 #include "msdos.h"
diff --git a/msdos/int41.c b/msdos/int41.c
index 4ba588e36a25f621f239752a6f3473bd26820b31..85c4e269d70eb470f6595818bc16a36a8d2500aa 100644
--- a/msdos/int41.c
+++ b/msdos/int41.c
@@ -4,6 +4,7 @@
  * Check debugsys.inc from the DDK for docu.
  */
 
+#include <stdio.h>
 #include "miscemu.h"
 
 /***********************************************************************
diff --git a/msdos/int4b.c b/msdos/int4b.c
index 615754782df004ad3a7abcff642677600d118ece..34e2085add2e554fa241384d67eebd4d90bd2304 100644
--- a/msdos/int4b.c
+++ b/msdos/int4b.c
@@ -2,6 +2,7 @@
  * DOS interrupt 4bh handler
  */
 
+#include <stdio.h>
 #include "miscemu.h"
 
 /***********************************************************************
diff --git a/msdos/vxd.c b/msdos/vxd.c
index 8022a5489416f49519b6cea81e6f2d8e5dff8cac..10c569b0694841a15173288aa2e13227252e7abe 100644
--- a/msdos/vxd.c
+++ b/msdos/vxd.c
@@ -12,6 +12,7 @@
 #include "miscemu.h"
 #include "selectors.h"
 #include "module.h"
+#include "neexe.h"
 #include "task.h"
 #include "process.h"
 #include "file.h"
diff --git a/multimedia/dsound.c b/multimedia/dsound.c
index 9c5ec66f62e1ae3664abe122c77c73730e230039..81d3fad1ea97a32935803cb6e1ec8f8f5a7853a7 100644
--- a/multimedia/dsound.c
+++ b/multimedia/dsound.c
@@ -61,10 +61,9 @@
 #include <stdlib.h>
 #include <string.h>
 #include <math.h>	/* Insomnia - pow() function */
-#include "windows.h"
+#include "dsound.h"
 #include "winerror.h"
 #include "multimedia.h"
-#include "dsound.h"
 #include "objbase.h"
 #include "thread.h"
 #include "debug.h"
diff --git a/multimedia/mmsystem.c b/multimedia/mmsystem.c
index 7741236e14de39f6c99f9592a133af51b65bee1a..8c505f9f9301c266be71843b21276d04c1937991 100644
--- a/multimedia/mmsystem.c
+++ b/multimedia/mmsystem.c
@@ -21,6 +21,9 @@
 #include <fcntl.h>
 #include <errno.h>
 #include <sys/ioctl.h>
+
+#include "windef.h"
+#include "wine/winbase16.h"
 #include "wine/winuser16.h"
 #include "win.h"
 #include "heap.h"
diff --git a/objects/bitmap.c b/objects/bitmap.c
index bb55e284c45365684143c58651450d33fa4aedd0..9e09fccc6a1a7530b39b56bb53f6003ee4b2b4c1 100644
--- a/objects/bitmap.c
+++ b/objects/bitmap.c
@@ -7,6 +7,8 @@
 
 #include <stdlib.h>
 #include <string.h>
+
+#include "wine/winbase16.h"
 #include "gdi.h"
 #include "dc.h"
 #include "bitmap.h"
diff --git a/objects/brush.c b/objects/brush.c
index c46ef4e035648c466f0d039360a2f934450c0988..f460f2b9befdde10748b46dee00cc0dea2c62d2c 100644
--- a/objects/brush.c
+++ b/objects/brush.c
@@ -5,6 +5,7 @@
  */
 
 #include <stdlib.h>
+#include "winbase.h"
 #include "brush.h"
 #include "bitmap.h"
 #include "debug.h"
diff --git a/objects/font.c b/objects/font.c
index e98ac8673a9782624c1127a05bf9dc9429e4fffb..c4dfc53f39c535320b2ec3262bf770399b7cedd8 100644
--- a/objects/font.c
+++ b/objects/font.c
@@ -7,6 +7,7 @@
 
 #include <stdlib.h>
 #include <string.h>
+#include "wine/winestring.h"
 #include "font.h"
 #include "heap.h"
 #include "metafile.h"
diff --git a/objects/metafile.c b/objects/metafile.c
index 7cf534cb3913573be3e48c4a7a9c773db23f9d80..1da0384dada6512a485f530ae009acfb79a071f0 100644
--- a/objects/metafile.c
+++ b/objects/metafile.c
@@ -8,13 +8,12 @@
 
 #include <string.h>
 #include <fcntl.h>
-#include "windows.h"
-#include "gdi.h"
+#include "wine/winbase16.h"
+#include "metafiledrv.h"
+#include "metafile.h"
 #include "bitmap.h"
 #include "file.h"
 #include "heap.h"
-#include "metafile.h"
-#include "metafiledrv.h"
 #include "toolhelp.h"
 #include "debug.h"
 
diff --git a/objects/region.c b/objects/region.c
index 732dbba38f6e77645ab9d4228d5b7d451147f2b7..7f53e9d0f4a1569599374de8a34731f97e961bd2 100644
--- a/objects/region.c
+++ b/objects/region.c
@@ -81,6 +81,7 @@ SOFTWARE.
  */
 
 #include "region.h"
+#include "winuser.h"
 #include "debug.h"
 #include "heap.h"
 #include "dc.h"
diff --git a/ole/ifs.c b/ole/ifs.c
index ed8d918f16b5e8a65a41a7b2aa37790a475078d5..e092824914acb929982631a2460afba26b65fff2 100644
--- a/ole/ifs.c
+++ b/ole/ifs.c
@@ -11,6 +11,7 @@
 #include "winerror.h"
 #include "ldt.h"
 #include "heap.h"
+#include "wine/winbase16.h"
 #include "wine/obj_base.h"
 #include "objbase.h"
 #include "local.h"
diff --git a/ole/ole2nls.c b/ole/ole2nls.c
index d18d33e6ebbb695df4dc275fed5aad88829dbb1f..ae55e9386f461177a339cb6027cb8c4b83a9a0f8 100644
--- a/ole/ole2nls.c
+++ b/ole/ole2nls.c
@@ -8,7 +8,7 @@
 #include <string.h>
 #include <ctype.h>
 #include <stdlib.h>
-#include "windows.h"
+#include "winuser.h"
 #include "heap.h"
 #include "ole.h"
 #include "options.h"
diff --git a/relay32/builtin32.c b/relay32/builtin32.c
index e5bea3731afbd88596b6947625eb84e62db14f20..50442bd4bcedf044a81b151029aabded2d97a791 100644
--- a/relay32/builtin32.c
+++ b/relay32/builtin32.c
@@ -6,9 +6,11 @@
 
 #include <assert.h>
 #include <string.h>
+#include <ctype.h>
 #include "winuser.h"
 #include "builtin32.h"
 #include "peexe.h"
+#include "neexe.h"
 #include "heap.h"
 #include "debug.h"
 #include "main.h"
diff --git a/relay32/snoop.c b/relay32/snoop.c
index 216ccd4498396a9ffd248d7f173efea8de602c39..b09dea3517eab6052fbf82a5f473bdeee58485e1 100644
--- a/relay32/snoop.c
+++ b/relay32/snoop.c
@@ -6,12 +6,14 @@
 
 
 #include <assert.h>
+#include <string.h>
 #include "windows.h"
 #include "winbase.h"
 #include "winnt.h"
 #include "heap.h"
 #include "builtin32.h"
 #include "snoop.h"
+#include "neexe.h"
 #include "peexe.h"
 #include "selectors.h"
 #include "stackframe.h"
diff --git a/scheduler/client.c b/scheduler/client.c
index 81e6b40426a7983a8488a3a4e32938d25a9e52c0..6c0aa23d74bc0053f566a2156aa1bcf2cfa22f39 100644
--- a/scheduler/client.c
+++ b/scheduler/client.c
@@ -13,6 +13,7 @@
 #include <sys/socket.h>
 #include <sys/uio.h>
 #include <unistd.h>
+#include <stdarg.h>
 
 #include "process.h"
 #include "thread.h"
diff --git a/scheduler/process.c b/scheduler/process.c
index 10ddce3ce0f65ebbe57a61407a5749a93e155e28..dadf86472df97865e5a304f72984066c95d35111 100644
--- a/scheduler/process.c
+++ b/scheduler/process.c
@@ -10,6 +10,7 @@
 #include <unistd.h>
 #include "process.h"
 #include "module.h"
+#include "neexe.h"
 #include "file.h"
 #include "global.h"
 #include "heap.h"
diff --git a/scheduler/thread.c b/scheduler/thread.c
index 0cd707f31fb06ce8b40b7dc0dfb05ea09f7582cc..4b4d1eae13f168600a4891d0c116dab49849ae86 100644
--- a/scheduler/thread.c
+++ b/scheduler/thread.c
@@ -7,6 +7,7 @@
 #include <assert.h>
 #include <signal.h>
 #include <unistd.h>
+#include "wine/winbase16.h"
 #include "thread.h"
 #include "process.h"
 #include "task.h"
diff --git a/win32/init.c b/win32/init.c
index 267ec4c88075a5dc61fa53e3454e901b888b3d95..c2c9b5ef8c2574c21fb39dd9d7778595d54faa71 100644
--- a/win32/init.c
+++ b/win32/init.c
@@ -7,9 +7,9 @@
 #include <string.h>
 #include <unistd.h>
 #include <stdlib.h>
+#include "except.h"
 #include "windows.h"
 #include "winerror.h"
-#include "except.h"
 #include "heap.h"
 #include "task.h"
 #include "debug.h"
diff --git a/win32/kernel32.c b/win32/kernel32.c
index d4d7251a73e1654b60e3f3d590a01ba17b563272..0b64609df0af0a7dc4a18fbf206c5820237a6471 100644
--- a/win32/kernel32.c
+++ b/win32/kernel32.c
@@ -10,11 +10,11 @@
 
 #include "windows.h"
 #include "callback.h"
-#include "resource.h"
 #include "task.h"
 #include "user.h"
 #include "heap.h"
 #include "module.h"
+#include "neexe.h"
 #include "process.h"
 #include "stackframe.h"
 #include "heap.h"
diff --git a/win32/struct32.c b/win32/struct32.c
index 35cc01b946913baa1f1b748d68c3c813d543111c..6750f58293bbd33e731cfd2fc3dca6abec7efe04 100644
--- a/win32/struct32.c
+++ b/win32/struct32.c
@@ -4,9 +4,8 @@
  * Copyright 1996 Martin von Loewis
  */
 
-#include "windows.h"
-#include "winerror.h"
 #include "struct32.h"
+#include "winerror.h"
 #include "debug.h"
 
 void STRUCT32_MSG16to32(const MSG16 *msg16,MSG32 *msg32)
diff --git a/windows/class.c b/windows/class.c
index ddd8efe2c4546f67a9b8dc62d1553098839a39e1..69db2210f69cb0bd6012ad2635e60782cbdef5cd 100644
--- a/windows/class.c
+++ b/windows/class.c
@@ -14,6 +14,7 @@
 
 #include <stdlib.h>
 #include <string.h>
+#include "wine/winbase16.h"
 #include "class.h"
 #include "heap.h"
 #include "win.h"
diff --git a/windows/message.c b/windows/message.c
index 1f799f1075264b154db0449c62369d12981c51b3..1723efd99556f71c66c730b64f5b9a2c2183bd70 100644
--- a/windows/message.c
+++ b/windows/message.c
@@ -10,6 +10,7 @@
 #include <sys/time.h>
 #include <sys/types.h>
 
+#include "wine/winbase16.h"
 #include "message.h"
 #include "winerror.h"
 #include "win.h"
diff --git a/windows/nonclient.c b/windows/nonclient.c
index 36efbdd9126fc92d1794024e5d7f5b4741c19efb..bf58c521fe1f25bcc397b5a3f78a1c4d44624858 100644
--- a/windows/nonclient.c
+++ b/windows/nonclient.c
@@ -23,6 +23,7 @@
 #include "tweak.h"
 #include "debug.h"
 #include "options.h"
+#include "shellapi.h"
 #include "cache.h"
 
 static HBITMAP16 hbitmapClose = 0;
diff --git a/windows/queue.c b/windows/queue.c
index e7b44d56468945f0a9b61ce03cc66a1863447d19..0a33aa04817b5458ed5e72b931552d42fd5e0010 100644
--- a/windows/queue.c
+++ b/windows/queue.c
@@ -5,6 +5,8 @@
 
 #include <stdlib.h>
 #include <signal.h>
+#include "wine/winbase16.h"
+#include "wine/winuser16.h"
 #include "miscemu.h"
 #include "module.h"
 #include "queue.h"
diff --git a/windows/syscolor.c b/windows/syscolor.c
index d8db19cdda84e6fddb5fe91def2bf36d101bc564..19a597af4e9d73765625cb20301043c7f3f1399d 100644
--- a/windows/syscolor.c
+++ b/windows/syscolor.c
@@ -9,6 +9,8 @@
 #include <assert.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include "winbase.h"
+#include "winuser.h"
 #include "debug.h"
 #include "gdi.h"
 #include "tweak.h"
diff --git a/windows/sysmetrics.c b/windows/sysmetrics.c
index 6bb2cd2ac6467d3910aa5d5658e6ab4742833d6e..37b53e20639defd6d45731684247e97507319bf7 100644
--- a/windows/sysmetrics.c
+++ b/windows/sysmetrics.c
@@ -6,6 +6,8 @@
  */
 
 #include <stdio.h>
+#include "winbase.h"
+#include "winuser.h"
 #include "gdi.h"
 #include "monitor.h"
 #include "options.h"
diff --git a/windows/user.c b/windows/user.c
index 2dd940eb337adf37d8ef4072fb764684fff9e68f..5513dca0790ed918ad53c78cf30bb57f112fd2b1 100644
--- a/windows/user.c
+++ b/windows/user.c
@@ -7,7 +7,6 @@
 
 #include <stdlib.h>
 #include "windows.h"
-#include "resource.h"
 #include "heap.h"
 #include "gdi.h"
 #include "user.h"
diff --git a/windows/win.c b/windows/win.c
index 01b2131ad250cb2fbcbdede76d558a8eae72e3fc..202b8ff4b9be2f8addf3b8c3b6bcbf07a3a01e1b 100644
--- a/windows/win.c
+++ b/windows/win.c
@@ -8,6 +8,7 @@
 
 #include <stdlib.h>
 #include <string.h>
+#include "wine/winbase16.h"
 #include "options.h"
 #include "class.h"
 #include "win.h"