diff --git a/dlls/avifil32/avifile.c b/dlls/avifil32/avifile.c
index d017fe96a72eea6272e466cd1841e6a8c50840c9..566c8c4516ec37a8d46df6198b15b8f6b041768a 100644
--- a/dlls/avifil32/avifile.c
+++ b/dlls/avifil32/avifile.c
@@ -6,12 +6,14 @@
 #include <assert.h>
 
 #include "winbase.h"
-#include "vfw.h"
 #include "wine/winestring.h"
 #include "mmsystem.h"
 #include "winerror.h"
 #include "debugtools.h"
 
+#include "initguid.h"
+#include "vfw.h"
+
 DEFAULT_DEBUG_CHANNEL(avifile);
 
 static HRESULT WINAPI IAVIFile_fnQueryInterface(IAVIFile* iface,REFIID refiid,LPVOID *obj);
diff --git a/dlls/ddraw/main.c b/dlls/ddraw/main.c
index eeb25f57d226f7801006ced71af5bb42bf41aab7..acdc101b75279663fc02edaf1e11834554e52ce1 100644
--- a/dlls/ddraw/main.c
+++ b/dlls/ddraw/main.c
@@ -18,11 +18,13 @@
 #include "dc.h"
 #include "win.h"
 #include "wine/exception.h"
-#include "ddraw.h"
-#include "d3d.h"
 #include "debugtools.h"
 #include "message.h"
 
+#include "initguid.h"
+#include "ddraw.h"
+#include "d3d.h"
+
 /* This for all the enumeration and creation of D3D-related objects */
 #include "ddraw_private.h"
 
diff --git a/dlls/dinput/dinput_main.c b/dlls/dinput/dinput_main.c
index 0a032fd5768250700b4318f8f020cbab17959132..b349c960c8419a3331b8734cbc4f477dca880342 100644
--- a/dlls/dinput/dinput_main.c
+++ b/dlls/dinput/dinput_main.c
@@ -38,9 +38,8 @@
 # include <linux/joystick.h>
 # define JOYDEV	"/dev/js0"
 #endif
-#include "wine/obj_base.h"
+
 #include "debugtools.h"
-#include "dinput.h"
 #include "input.h"
 #include "user.h"
 #include "message.h"
@@ -51,6 +50,9 @@
 #include "wingdi.h"
 #include "winuser.h"
 
+#include "initguid.h"
+#include "dinput.h"
+
 DEFAULT_DEBUG_CHANNEL(dinput);
 
 /* Wine mouse driver object instances */
diff --git a/dlls/dplayx/dplayx_main.c b/dlls/dplayx/dplayx_main.c
index 25c1a51602223b1c3c355369937fa3074b3e4dab..56702f9c818810e7c505370afcb47ee9ee2231f4 100644
--- a/dlls/dplayx/dplayx_main.c
+++ b/dlls/dplayx/dplayx_main.c
@@ -8,9 +8,13 @@
 
 #include "winbase.h"
 #include "debugtools.h"
+
+#include "initguid.h"
+#include "dplay.h"
+#include "dplobby.h"
 #include "dplayx_global.h"
 
-DEFAULT_DEBUG_CHANNEL(dplay)
+DEFAULT_DEBUG_CHANNEL(dplay);
 
 static DWORD DPLAYX_dwProcessesAttached = 0;
 
diff --git a/dlls/dsound/dsound_main.c b/dlls/dsound/dsound_main.c
index f9bd75250a33441b5c155849a10c5135c75bab92..6988c03f94ad4b4a0a077b8f20ad9ac235130a83 100644
--- a/dlls/dsound/dsound_main.c
+++ b/dlls/dsound/dsound_main.c
@@ -34,17 +34,19 @@
 #include <stdlib.h>
 #include <string.h>
 #include <math.h>	/* Insomnia - pow() function */
-#include "dsound.h"
-#include "dsdriver.h"
+
 #include "windef.h"
 #include "wingdi.h"
 #include "winuser.h"
 #include "winerror.h"
 #include "mmsystem.h"
-#include "wine/obj_base.h"
 #include "thread.h"
 #include "debugtools.h"
 
+#include "initguid.h"
+#include "dsound.h"
+#include "dsdriver.h"
+
 DEFAULT_DEBUG_CHANNEL(dsound);
 
 /* these are eligible for tuning... they must be high on slow machines... */
diff --git a/dlls/ole32/oleobj.c b/dlls/ole32/oleobj.c
index 06c1339896271bd512aa8a84bbb95f9ac43bf643..4c0838baf696ea50cb299bf18c870ede00e2d860 100644
--- a/dlls/ole32/oleobj.c
+++ b/dlls/ole32/oleobj.c
@@ -9,10 +9,12 @@
 #include <string.h>
 #include "winbase.h"
 #include "winerror.h"
-#include "oleidl.h"
 #include "debugtools.h"
 
-DEFAULT_DEBUG_CHANNEL(ole)
+#include "initguid.h"
+#include "oleidl.h"
+
+DEFAULT_DEBUG_CHANNEL(ole);
 
 #define INITIAL_SINKS 10
 
diff --git a/dlls/oleaut32/oleaut.c b/dlls/oleaut32/oleaut.c
index 79b91211526a91a274d2726b08c6ad30c73b2217..95524c5dc5ad95589a2055ce0c22426bb7665d5c 100644
--- a/dlls/oleaut32/oleaut.c
+++ b/dlls/oleaut32/oleaut.c
@@ -8,13 +8,15 @@
 #include "winuser.h"
 #include "winerror.h"
 #include "winversion.h"
-#include "oleauto.h"
-#include "wine/obj_base.h"
-#include "wine/obj_moniker.h"
+
 #include "heap.h"
 #include "ldt.h"
 #include "debugtools.h"
 
+#include "initguid.h"
+#include "oleauto.h"
+#include "olectl.h"
+
 DEFAULT_DEBUG_CHANNEL(ole);
 
 static WCHAR	_delimiter[2] = {'!',0}; /* default delimiter apparently */
diff --git a/dlls/shell32/shellguid.c b/dlls/shell32/shellguid.c
index 49b545dd8bfe6f4e2b757f06013a5388f15ef279..98212040e28a0ff5e6b80ff1ea588562ea164f0c 100644
--- a/dlls/shell32/shellguid.c
+++ b/dlls/shell32/shellguid.c
@@ -6,19 +6,9 @@
  *  this in in a single file due to interfering definitions
  *
  */
-#define INITGUID
+#include "initguid.h"
 
 #include "shlwapi.h"
-/* #include "shlguid.h" */
-
-/*
- * Francis Beaudet <francis@macadamian.com> 
- *
- * I moved the contents of this file to the ole/guid.c file.
- *
- * I know that the purpose of this file being here is that it would
- * separate the definitions reserved to the shell DLL into one place. *
- However, until the shell DLL is a real DLL, as long as it is *
- statically linked with the rest of wine, the initializer of it's * GUIDs
- will have to be in the same place as everybody else. This is * the same
- problem as with "real" Windows programs. */
+#include "shlguid.h"
+#include "shlobj.h"
+#include "docobj.h"
diff --git a/dlls/shlwapi/shlwapi_main.c b/dlls/shlwapi/shlwapi_main.c
index b900167a5e1edb5e6c252234347aa71ac8a0bf31..ea38f350be0f41ca7723f8d95306d259616882ea 100644
--- a/dlls/shlwapi/shlwapi_main.c
+++ b/dlls/shlwapi/shlwapi_main.c
@@ -9,6 +9,9 @@
 #include "winerror.h"
 #include "debugtools.h"
 
+#include "initguid.h"
+#include "wine/obj_storage.h"
+
 DEFAULT_DEBUG_CHANNEL(shell);
 
 HINSTANCE shlwapi_hInstance = 0; 
diff --git a/ole/guid.c b/ole/guid.c
index e8da44818b88c7f579d9a35bdb2bb29dce871dea..2a210e62f7f5c43d26feeedeced4ab1336692a2f 100644
--- a/ole/guid.c
+++ b/ole/guid.c
@@ -9,6 +9,7 @@
  */
 #include "initguid.h"
 
+#if 0
 #include "shlguid.h"
 #include "docobj.h"
 #include "olectl.h"
@@ -25,6 +26,7 @@
 #include "dplobby.h"
 #include "vfw.h"
 #include "shlobj.h"
+#endif
 
 /* and now for the one assumed GUID... */
 DEFINE_GUID(GUID_NULL,   0,0,0,0,0,0,0,0,0,0,0);