diff --git a/dlls/ole32/compobj.c b/dlls/ole32/compobj.c
index 8ec347e439318357724879764bddd4959149a841..1dcb58bdd678b5a8dfc9fab218645ba2dc56d910 100644
--- a/dlls/ole32/compobj.c
+++ b/dlls/ole32/compobj.c
@@ -35,6 +35,8 @@
 #include <time.h>
 #include <assert.h>
 #include "windef.h"
+#include "wtypes.h"
+#include "wingdi.h"
 #include "wine/winbase16.h"
 #include "winerror.h"
 #include "wownt32.h"
diff --git a/dlls/ole32/datacache.c b/dlls/ole32/datacache.c
index a8cf0921e086d15d1ed8af3fb39d1d07ac11df41..0458929efb115b1a546eb6ef7b85108fb4479903 100644
--- a/dlls/ole32/datacache.c
+++ b/dlls/ole32/datacache.c
@@ -31,14 +31,15 @@
  *     was stored but that's about it.
  */
 #include <assert.h>
-#include "wingdi.h"
+#include "windef.h"
 #include "winbase.h"
+#include "wingdi.h"
 #include "winerror.h"
 #include "wine/obj_oleview.h"
 #include "wine/obj_cache.h"
 #include "debugtools.h"
 
-DEFAULT_DEBUG_CHANNEL(ole)
+DEFAULT_DEBUG_CHANNEL(ole);
 
 /****************************************************************************
  * PresentationDataHeader
diff --git a/dlls/ole32/storage.c b/dlls/ole32/storage.c
index 088ed7e95903c612631aea850ba71f0f71ec3220..001a8f9ecc03bc031b54ec1a6291882d0607d6f5 100644
--- a/dlls/ole32/storage.c
+++ b/dlls/ole32/storage.c
@@ -10,10 +10,14 @@
 #include <assert.h>
 #include <time.h>
 #include <string.h>
+#include <sys/types.h>
+#include <unistd.h>
 #include "windef.h"
 #include "winerror.h"
 #include "wine/winestring.h"
 #include "wine/winbase16.h"
+#include "wingdi.h"
+#include "wtypes.h"
 #include "file.h"
 #include "ole.h"
 #include "wine/obj_base.h"
@@ -23,8 +27,8 @@
 #include "ldt.h"
 #include "debugtools.h"
 
-DEFAULT_DEBUG_CHANNEL(ole)
-DECLARE_DEBUG_CHANNEL(relay)
+DEFAULT_DEBUG_CHANNEL(ole);
+DECLARE_DEBUG_CHANNEL(relay);
 
 struct storage_header {
 	BYTE	magic[8];	/* 00: magic */
diff --git a/dlls/oleaut32/variant.c b/dlls/oleaut32/variant.c
index 034e475920c30b520a14636a522bd2d2c55f1b81..8dfbe4b10395cfae119a8cc6d9a0d952bdb24660 100644
--- a/dlls/oleaut32/variant.c
+++ b/dlls/oleaut32/variant.c
@@ -22,17 +22,9 @@
 
 #include "config.h"
  
-#include "windef.h"
-#include "oleauto.h"
-#include "heap.h"
-#include "debugtools.h"
-#include "winerror.h"
-#include "parsedt.h"
-
-DEFAULT_DEBUG_CHANNEL(ole)
-
 #include <string.h>
 #include <stdlib.h>
+#include <stdio.h>
 #include <math.h>
 #include <time.h>
 
@@ -40,6 +32,15 @@ DEFAULT_DEBUG_CHANNEL(ole)
 # include <float.h>
 #endif
 
+#include "windef.h"
+#include "oleauto.h"
+#include "heap.h"
+#include "debugtools.h"
+#include "winerror.h"
+#include "parsedt.h"
+
+DEFAULT_DEBUG_CHANNEL(ole);
+
 #ifndef FLT_MAX
 # ifdef MAXFLOAT
 #  define FLT_MAX MAXFLOAT
diff --git a/dlls/olecli/olecli_main.c b/dlls/olecli/olecli_main.c
index 2e5e4d690683d9b3051eba768503d843ec796528..6009a1cbeddf3b83a21195ab647a8609ba485fac 100644
--- a/dlls/olecli/olecli_main.c
+++ b/dlls/olecli/olecli_main.c
@@ -6,11 +6,14 @@
 
 /*	At the moment, these are only empty stubs.
  */
+#include "windef.h"
+#include "wingdi.h"
+#include "wtypes.h"
 #include "ole.h"
 #include "gdi.h"
 #include "debugtools.h"
 
-DEFAULT_DEBUG_CHANNEL(ole)
+DEFAULT_DEBUG_CHANNEL(ole);
 
 
 extern LONG	OLE_current_handle;
diff --git a/dlls/olesvr/olesvr_main.c b/dlls/olesvr/olesvr_main.c
index dcce95b3b5483677c6fc34142d6f5cf31a0e4bf6..6fa30a7aacb1c02d797d9a0ec489ba7c8491a577 100644
--- a/dlls/olesvr/olesvr_main.c
+++ b/dlls/olesvr/olesvr_main.c
@@ -7,10 +7,13 @@
 /*	At the moment, these are only empty stubs.
  */
 
+#include "windef.h"
+#include "wingdi.h"
+#include "wtypes.h"
 #include "ole.h"
 #include "debugtools.h"
 
-DEFAULT_DEBUG_CHANNEL(ole)
+DEFAULT_DEBUG_CHANNEL(ole);
 
 LONG	OLE_current_handle;
 
diff --git a/graphics/cache.c b/graphics/cache.c
index ea603904a0c4a5c00650e6340a636acd6fb9e631..54090b8941108db4542d60f7a18c82e9a7c00f57 100644
--- a/graphics/cache.c
+++ b/graphics/cache.c
@@ -6,6 +6,7 @@
  *
  */
 
+#include "windef.h"
 #include "wingdi.h"
 #include "cache.h"
 
diff --git a/graphics/escape.c b/graphics/escape.c
index 54ca0200e06668d22ef2833e62ef3ab08f5cf70a..b14cfc51f918d3244cc58616f1be2126485bbdb1 100644
--- a/graphics/escape.c
+++ b/graphics/escape.c
@@ -5,6 +5,7 @@
  */
 
 #include <string.h>
+#include "windef.h"
 #include "wingdi.h"
 #include "gdi.h"
 #include "heap.h"
@@ -12,7 +13,7 @@
 #include "dc.h"
 #include "debugtools.h"
 
-DEFAULT_DEBUG_CHANNEL(driver)
+DEFAULT_DEBUG_CHANNEL(driver);
 
 /***********************************************************************
  *            Escape16  [GDI.38]
diff --git a/graphics/ttydrv/text.c b/graphics/ttydrv/text.c
index b9ce6d2ab548b221edbf8eaa6d6c481aa0603505..b1b271302bb64e42b8e8218bc903c40a57f7d334 100644
--- a/graphics/ttydrv/text.c
+++ b/graphics/ttydrv/text.c
@@ -6,13 +6,14 @@
 
 #include "config.h"
 
-#include "wine/wingdi16.h"
+#include "windef.h"
+#include "wingdi.h"
 #include "dc.h"
 #include "debugtools.h"
 #include "gdi.h"
 #include "ttydrv.h"
 
-DEFAULT_DEBUG_CHANNEL(ttydrv)
+DEFAULT_DEBUG_CHANNEL(ttydrv);
 
 /***********************************************************************
  *		TTYDRV_DC_ExtTextOut
diff --git a/include/color.h b/include/color.h
index 793fc2c785f985b00d36a278bbf44435f2666e55..3c85e1ea2d5776b6faa864e983a90b8a560b3302 100644
--- a/include/color.h
+++ b/include/color.h
@@ -1,6 +1,7 @@
 #ifndef __WINE_COLOR_H
 #define __WINE_COLOR_H
 
+#include "windef.h"
 #include "wingdi.h"
 #include "palette.h"
 
diff --git a/include/enhmetafiledrv.h b/include/enhmetafiledrv.h
index 9df7c6c387f62be77bb694ffbad931bc1e54e6e8..303e376802dca76d4cd6c338d5100028f02a485b 100644
--- a/include/enhmetafiledrv.h
+++ b/include/enhmetafiledrv.h
@@ -5,6 +5,7 @@
 #ifndef __WINE_ENHMETAFILEDRV_H
 #define __WINE_ENHMETAFILEDRV_H
 
+#include "windef.h"
 #include "wingdi.h"
 #include "gdi.h"
 
diff --git a/include/metafiledrv.h b/include/metafiledrv.h
index 1502218ef629b80b59fd9466b388341351476162..19c6aac06957e793344316df79f34f4c3e3d1b39 100644
--- a/include/metafiledrv.h
+++ b/include/metafiledrv.h
@@ -5,6 +5,7 @@
 #ifndef __WINE_METAFILEDRV_H
 #define __WINE_METAFILEDRV_H
 
+#include "windef.h"
 #include "wingdi.h"
 #include "gdi.h"
 
diff --git a/include/ole.h b/include/ole.h
index 45b887930b4d3443d198fbbdde2fabfc4b77cab6..2306b24d05c63a07147f4c424df81d85b47c41dd 100644
--- a/include/ole.h
+++ b/include/ole.h
@@ -5,15 +5,6 @@
 #ifndef __WINE_OLE_H
 #define __WINE_OLE_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 
- * be moved to ole2.h (which includes objbase.h and thus wtypes.h) or some other 
- * OLE include
- */
-#include "wtypes.h"
-
 #ifdef __cplusplus
 extern "C" {
 #endif
diff --git a/include/psdrv.h b/include/psdrv.h
index 46a46aee3e1407fc9d182a773ef9bfdc21c85ded..2902043a97826fa36f7b34d006a83e2a9d981148 100644
--- a/include/psdrv.h
+++ b/include/psdrv.h
@@ -6,6 +6,7 @@
  *
  *	Copyright 1998  Huw D M Davies
  */
+#include "windef.h"
 #include "wingdi.h"
 #include "font.h"
 #include "pen.h"
diff --git a/include/win16drv.h b/include/win16drv.h
index 0fb32be799cae2cd96404d1a17bbc8d3fd3bf422..f5e7fb22053d8c4c14948aa5cad26c463db9d4c6 100644
--- a/include/win16drv.h
+++ b/include/win16drv.h
@@ -5,6 +5,7 @@
 #ifndef __WINE_WIN16DRV_H
 #define __WINE_WIN16DRV_H
 
+#include "windef.h"
 #include "wingdi.h"
 #include "gdi.h"
 
diff --git a/include/wingdi.h b/include/wingdi.h
index 404ea40f4a2a240efa0def037e05d97bf9a33ae9..db6da4415e9efca61c462d524791e923636e5246 100644
--- a/include/wingdi.h
+++ b/include/wingdi.h
@@ -1,8 +1,6 @@
 #ifndef __WINE_WINGDI_H
 #define __WINE_WINGDI_H
 
-#include "windef.h"
-
 #ifdef __cplusplus
 extern "C" {
 #endif
diff --git a/library/winestub.c b/library/winestub.c
index 3a3a120cfe25baa4b3afa5a7fb6ad1723ae9f160..1c0317b788a3ba23d7f3ed016ef07561bfd8d887 100644
--- a/library/winestub.c
+++ b/library/winestub.c
@@ -1,7 +1,9 @@
 /* Sample winestub.c file for compiling programs with libwine.so. */
 
 #include <string.h>
+#include "windef.h"
 #include "winbase.h"
+#include "wingdi.h"
 #include "winuser.h"
 #include "xmalloc.h"
 
diff --git a/misc/cdrom.c b/misc/cdrom.c
index ddce8ea72f1d9b9ca5798a6ffd73f3c1712c824d..0a8ab8d657be17a7865eb71bd1a6b5a9b736aa5e 100644
--- a/misc/cdrom.c
+++ b/misc/cdrom.c
@@ -7,6 +7,8 @@
  * Copyright 2000 Andreas Mohr
  */
 
+#include "config.h"
+
 #include <errno.h>
 #include <string.h>
 #include <fcntl.h>
diff --git a/msdos/int2f.c b/msdos/int2f.c
index 4ccb01327d2faffa58934b9fad8bf9d58ed30cff..e52149f36bafc5da9a26b3f38a40a285a8ed146e 100644
--- a/msdos/int2f.c
+++ b/msdos/int2f.c
@@ -7,6 +7,8 @@
  *	(c) 1999 Eric Pouech
  */
 
+#include "config.h"
+
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
diff --git a/objects/linedda.c b/objects/linedda.c
index 084d60c676da1dd13421843dd4b39be05dd47f3d..b48c2c225cca2bba723e880404bc1a383afede3b 100644
--- a/objects/linedda.c
+++ b/objects/linedda.c
@@ -5,6 +5,7 @@
  */
 
 #include <stdlib.h>
+#include "windef.h"
 #include "wingdi.h"
 #include "wine/wingdi16.h"