diff --git a/dlls/Makefile.in b/dlls/Makefile.in
index 79b589dbb2941990660b2e76da9da0c2b8ebe89e..4ef34ab52974948faf41d07388cede923b3ece45 100644
--- a/dlls/Makefile.in
+++ b/dlls/Makefile.in
@@ -372,8 +372,9 @@ libx11drv.@LIBEXT@: x11drv/libx11drv.@LIBEXT@
 
 # Inter-dll dependencies (only necessary for .so)
 
+advapi32/libadvapi32.so: libkernel32.so
 avifil32/libavifil32.so: libmsvfw32.so libkernel32.so
-comctl32/libcomctl32.so: libuser32.so libgdi32.so
+comctl32/libcomctl32.so: libuser32.so libgdi32.so libkernel32.so
 commdlg/libcomdlg32.so: libshell32.so libshlwapi.so libcomctl32.so libuser32.so libwinspool.drv.so libgdi32.so libkernel32.so
 crtdll/libcrtdll.so: libkernel32.so
 ddraw/libddraw.so: libole32.so libuser32.so libx11drv.so libgdi32.so libkernel32.so
@@ -382,15 +383,20 @@ dplay/libdplay.so: libdplayx.so
 dplayx/libdplayx.so: libole32.so libadvapi32.so libkernel32.so
 dsound/libdsound.so: libwinmm.so libkernel32.so
 gdi/libgdi32.so: libkernel32.so
-msacm/libmsacm32.so: libwinmm.so
+icmp/libicmp.so: libkernel32.so
+imagehlp/libimagehlp.so: libkernel32.so
+lzexpand/liblz32.so: libkernel32.so
+mpr/libmpr.so: libkernel32.so
+msacm/libmsacm32.so: libwinmm.so libkernel32.so
 msvideo/libmsvfw32.so: libwinmm.so libuser32.so libgdi32.so libkernel32.so
 ole32/libole32.so: libadvapi32.so libuser32.so libgdi32.so librpcrt4.so libkernel32.so
 oleaut32/liboleaut32.so: libole32.so libgdi32.so libkernel32.so
 olecli/libolecli32.so: libole32.so libolesvr32.so libgdi32.so
 olepro32/libolepro32.so: liboleaut32.so
 opengl32/libopengl32.so: libx11drv.so
-richedit/libriched32.so: libuser32.so
-serialui/libserialui.so: libuser32.so
+richedit/libriched32.so: libuser32.so libkernel32.so
+serialui/libserialui.so: libuser32.so libadvapi32.so libkernel32.so
+setupapi/libsetupapi.so: libkernel32.so
 shell32/libshell32.so: libole32.so libshlwapi.so libcomctl32.so libadvapi32.so libuser32.so libgdi32.so libkernel32.so
 shfolder/libshfolder.so: libshell32.so
 shlwapi/libshlwapi.so: libadvapi32.so libuser32.so libkernel32.so
@@ -399,9 +405,11 @@ urlmon/liburlmon.so: libole32.so
 user/libuser32.so: libgdi32.so libkernel32.so
 version/libversion.so: liblz32.so libkernel32.so
 win32s/libw32skrnl.so: libkernel32.so
-wineps/libwineps.so: libgdi32.so
+winaspi/libwnaspi32.so: libkernel32.so
+wineps/libwineps.so: libgdi32.so libkernel32.so
+wininet/libwininet.so: libkernel32.so
 winmm/joystick/libjoystick.drv.so: libwinmm.so libuser32.so
-winmm/libwinmm.so: libuser32.so
+winmm/libwinmm.so: libuser32.so libkernel32.so
 winmm/mcianim/libmcianim.drv.so: libwinmm.so libuser32.so libkernel32.so
 winmm/mciavi/libmciavi.drv.so: libwinmm.so libuser32.so libkernel32.so
 winmm/mcicda/libmcicda.drv.so: libwinmm.so libuser32.so libkernel32.so
@@ -410,8 +418,8 @@ winmm/mciwave/libmciwave.drv.so: libwinmm.so libuser32.so libkernel32.so
 winmm/midimap/libmidimap.drv.so: libwinmm.so libuser32.so libkernel32.so
 winmm/wavemap/libmsacm.drv.so: libwinmm.so libuser32.so libkernel32.so
 winmm/wineoss/libwineoss.drv.so: libwinmm.so libuser32.so libkernel32.so
-winsock/libws2_32.so: libuser32.so
-winspool/libwinspool.drv.so: libgdi32.so
+winsock/libws2_32.so: libuser32.so libkernel32.so
+winspool/libwinspool.drv.so: libgdi32.so libadvapi32.so libkernel32.so
 wow32/libwow32.so: libkernel32.so
 wsock32/libwsock32.so: libws2_32.so
 x11drv/libx11drv.so: libuser32.so libgdi32.so libkernel32.so
diff --git a/dlls/advapi32/Makefile.in b/dlls/advapi32/Makefile.in
index 36c0103599d9e252ec17d80f4e7d27c164a5b5ab..0b22ab35e74ff65a063ee98229fa1d6662b31346 100644
--- a/dlls/advapi32/Makefile.in
+++ b/dlls/advapi32/Makefile.in
@@ -4,6 +4,7 @@ SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = advapi32
 SOVERSION = 1.0
+IMPORTS   = kernel32
 
 C_SRCS = \
 	advapi.c \
diff --git a/dlls/advapi32/advapi32.spec b/dlls/advapi32/advapi32.spec
index c84993bbadf04d4936de907796905a3cbc1b7a29..1fed46199e90e5650ac2e43a8881723239b335dc 100644
--- a/dlls/advapi32/advapi32.spec
+++ b/dlls/advapi32/advapi32.spec
@@ -1,6 +1,9 @@
 name	advapi32
 type	win32
 
+import	kernel32.dll
+import	ntdll.dll
+
 @ stub AbortSystemShutdownA
 @ stub AbortSystemShutdownW
 @ stdcall AccessCheck(ptr long long ptr ptr ptr ptr ptr) AccessCheck
diff --git a/dlls/comctl32/Makefile.in b/dlls/comctl32/Makefile.in
index fc0c88fd4d02f1c48ab836b6e70680b94be799f3..fc79f99b8545e979cb6f6e0c661ee8f438abb3eb 100644
--- a/dlls/comctl32/Makefile.in
+++ b/dlls/comctl32/Makefile.in
@@ -5,7 +5,7 @@ VPATH     = @srcdir@
 MODULE    = comctl32
 SOVERSION = 1.0
 WRCEXTRA  = -s -p$(MODULE)
-IMPORTS   = user32 gdi32
+IMPORTS   = user32 gdi32 kernel32
 
 C_SRCS = \
 	animate.c \
diff --git a/dlls/comctl32/comctl32.spec b/dlls/comctl32/comctl32.spec
index ce1db46d730cb71e8a3799425275856ceb830b78..1368321a38c0dca36fa9c9a1106d544fb9a903d2 100644
--- a/dlls/comctl32/comctl32.spec
+++ b/dlls/comctl32/comctl32.spec
@@ -5,6 +5,7 @@ rsrc	comctl32
 
 import	user32.dll
 import	gdi32.dll
+import	kernel32.dll
 
 # Functions exported by the Win95 comctl32.dll 
 # (these need to have these exact ordinals, because some win95 dlls 
diff --git a/dlls/icmp/Makefile.in b/dlls/icmp/Makefile.in
index 9ff7cb2bcfe3c573f50eac936b59737f61bc1707..f77e49cb20c59bab290aded050834e0c6a538f77 100644
--- a/dlls/icmp/Makefile.in
+++ b/dlls/icmp/Makefile.in
@@ -4,6 +4,7 @@ SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = icmp
 SOVERSION = 1.0
+IMPORTS   = kernel32
 
 C_SRCS = icmp_main.c 
 
diff --git a/dlls/icmp/icmp.spec b/dlls/icmp/icmp.spec
index dd9d4ac7771738e3bfc36635bd0bda19b5ca5e1c..0e30d90286682ad1640a274b5006952eab455e0a 100644
--- a/dlls/icmp/icmp.spec
+++ b/dlls/icmp/icmp.spec
@@ -1,6 +1,8 @@
 name icmp
 type win32
 
+import kernel32.dll
+
 @ stdcall IcmpCloseHandle(ptr) IcmpCloseHandle
 @ stdcall IcmpCreateFile() IcmpCreateFile
 @ stub  IcmpParseReplies
diff --git a/dlls/imagehlp/Makefile.in b/dlls/imagehlp/Makefile.in
index e869d7427eba6a9e1982e116cb79b43940dc33ee..b0c2befccb8853eedf73a53fad68c57d5c9f9134 100644
--- a/dlls/imagehlp/Makefile.in
+++ b/dlls/imagehlp/Makefile.in
@@ -4,6 +4,7 @@ SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = imagehlp
 SOVERSION = 1.0
+IMPORTS   = kernel32
 
 C_SRCS = \
 	access.c \
diff --git a/dlls/imagehlp/imagehlp.spec b/dlls/imagehlp/imagehlp.spec
index 0a5c0bc27a3ac410b3458663b98af469d42c4c39..d403ff657c4577088f619a36748054e4d9b94bf4 100644
--- a/dlls/imagehlp/imagehlp.spec
+++ b/dlls/imagehlp/imagehlp.spec
@@ -2,6 +2,8 @@ name	imagehlp
 type	win32
 init	IMAGEHLP_LibMain
 
+import	kernel32.dll
+
 @ stdcall BindImage(str str str) BindImage
 @ stdcall BindImageEx(long str str str ptr) BindImageEx
 @ stdcall CheckSumMappedFile(ptr long ptr ptr) CheckSumMappedFile
diff --git a/dlls/lzexpand/Makefile.in b/dlls/lzexpand/Makefile.in
index a773a623d6724ff8a7b69d5fa292e4137b43c68d..d5ef1ca23513b985a0da575d40194f645de78863 100644
--- a/dlls/lzexpand/Makefile.in
+++ b/dlls/lzexpand/Makefile.in
@@ -5,6 +5,7 @@ VPATH     = @srcdir@
 MODULE    = lz32
 SOVERSION = 1.0
 ALTNAMES  = lzexpand
+IMPORTS   = kernel32
 
 C_SRCS = \
 	lzexpand_main.c
diff --git a/dlls/lzexpand/lz32.spec b/dlls/lzexpand/lz32.spec
index f16c335498b220e4b1d70ce63189883547a5d9a1..828d18f0540e3473d235a8f5b635778feec879aa 100644
--- a/dlls/lzexpand/lz32.spec
+++ b/dlls/lzexpand/lz32.spec
@@ -1,6 +1,8 @@
 name	lz32
 type	win32
 
+import	kernel32.dll
+
 @ stdcall CopyLZFile(long long) CopyLZFile
 @ stdcall GetExpandedNameA(str ptr) GetExpandedNameA
 @ stdcall GetExpandedNameW(wstr ptr) GetExpandedNameW
diff --git a/dlls/mpr/Makefile.in b/dlls/mpr/Makefile.in
index 5879a1cd6beb58e1e47c61c177379d3008c60d90..b6e312e0926bad93728af49825dabe3de9fc3020 100644
--- a/dlls/mpr/Makefile.in
+++ b/dlls/mpr/Makefile.in
@@ -4,6 +4,7 @@ SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = mpr
 SOVERSION = 1.0
+IMPORTS   = kernel32
 
 C_SRCS = \
 	auth.c \
diff --git a/dlls/mpr/mpr.spec b/dlls/mpr/mpr.spec
index 26e9b8aff578405be1b4dd643ba811947d3b10cf..efe28d039428c24c68ba72f754241f7ed2c9e91a 100644
--- a/dlls/mpr/mpr.spec
+++ b/dlls/mpr/mpr.spec
@@ -1,6 +1,8 @@
 name mpr
 type win32
 
+import kernel32.dll
+
 # ordinal exports
  1 stub @
  2 stub @
diff --git a/dlls/msacm/Makefile.in b/dlls/msacm/Makefile.in
index bdcde277dc12f932c32c80535e8014fc0d5a2247..9a41981d89db3ce186e9b2b6d63bbbbdd49220d0 100644
--- a/dlls/msacm/Makefile.in
+++ b/dlls/msacm/Makefile.in
@@ -5,7 +5,7 @@ VPATH     = @srcdir@
 MODULE    = msacm32
 SOVERSION = 1.0
 ALTNAMES  = msacm
-IMPORTS   = winmm
+IMPORTS   = winmm kernel32
 
 C_SRCS = \
 	driver.c \
diff --git a/dlls/msacm/msacm32.spec b/dlls/msacm/msacm32.spec
index 5ef2e46cbaf0010c7925f5a8eba798425472f0e2..9687de7e355d13066955a0315581ca75868da6f4 100644
--- a/dlls/msacm/msacm32.spec
+++ b/dlls/msacm/msacm32.spec
@@ -3,6 +3,7 @@ type win32
 init MSACM32_LibMain
 
 import winmm.dll
+import kernel32.dll
 
  1 stub XRegThunkEntry
  2 stdcall acmDriverAddA(ptr long long long long) acmDriverAddA
diff --git a/dlls/richedit/Makefile.in b/dlls/richedit/Makefile.in
index dcc38fc1d65fc8672b48f26671b1458408c188f7..d4a8c6ea6ea07d00ef64c5ad772f91dada5ab1fa 100644
--- a/dlls/richedit/Makefile.in
+++ b/dlls/richedit/Makefile.in
@@ -4,7 +4,7 @@ SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = riched32
 SOVERSION = 1.0
-IMPORTS   = user32
+IMPORTS   = user32 kernel32
 
 C_SRCS = \
 	charlist.c \
diff --git a/dlls/richedit/riched32.spec b/dlls/richedit/riched32.spec
index 799a141f76e6c1f4d5e6fddda70200589a73b3e8..b0c06fbd8591935d6d6a646c13c614832119f924 100644
--- a/dlls/richedit/riched32.spec
+++ b/dlls/richedit/riched32.spec
@@ -3,5 +3,6 @@ type	win32
 init	RICHED32_LibMain
 
 import	user32.dll
+import	kernel32.dll
 
 2 stdcall DllGetVersion (ptr) RICHED32_DllGetVersion
diff --git a/dlls/serialui/Makefile.in b/dlls/serialui/Makefile.in
index 85bf55398c28daa3c927228c396ac01b97955239..5ae497df19d4374a2c5c9a4d00cd0c9222505e5f 100644
--- a/dlls/serialui/Makefile.in
+++ b/dlls/serialui/Makefile.in
@@ -4,7 +4,7 @@ SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = serialui
 SOVERSION = 1.0
-IMPORTS   = user32
+IMPORTS   = user32 advapi32 kernel32
 
 C_SRCS = \
 	confdlg.c
diff --git a/dlls/serialui/serialui.spec b/dlls/serialui/serialui.spec
index 4b69485f12b8f9ff008349a00fada89adc3dc8a2..c6d3d067b7937617129e502cc6fb76e649efe44e 100644
--- a/dlls/serialui/serialui.spec
+++ b/dlls/serialui/serialui.spec
@@ -4,6 +4,8 @@ init	SERIALUI_LibMain
 rsrc	serialui_rc
 
 import	user32.dll
+import	advapi32.dll
+import	kernel32.dll
 
 2 stdcall EnumPropPages(ptr ptr ptr) SERIALUI_EnumPropPages
 3 stdcall drvCommConfigDialog(ptr long ptr) SERIALUI_CommConfigDialog
diff --git a/dlls/setupapi/Makefile.in b/dlls/setupapi/Makefile.in
index 90a0428ad44e7dbe8a5cadd57797aaf9fad8831e..b850029945ecf01f0c859f262344f1a80eb2a2c9 100644
--- a/dlls/setupapi/Makefile.in
+++ b/dlls/setupapi/Makefile.in
@@ -5,6 +5,7 @@ VPATH     = @srcdir@
 MODULE    = setupapi
 SOVERSION = 1.0
 ALTNAMES  = setupx
+IMPORTS   = kernel32
 
 C_SRCS = \
 	setupx_main.c \
diff --git a/dlls/setupapi/setupapi.spec b/dlls/setupapi/setupapi.spec
index 8e8bf1df4ef3f037b22681fc045c6bb6677fc95e..4b5cf0921aa7c0cc7d866b82a9adfd5203da36dd 100644
--- a/dlls/setupapi/setupapi.spec
+++ b/dlls/setupapi/setupapi.spec
@@ -1,6 +1,8 @@
 name setupapi
 type win32
 
+import kernel32.dll
+
 # almost all functions are commented out for now. Ordinals are from setupapi.dll 4.0
 
 # 45 stdcall SetupAddInstallSectionToDiskSpaceListA()         SetupAddInstallSectionToDiskSpaceListA
diff --git a/dlls/winaspi/Makefile.in b/dlls/winaspi/Makefile.in
index 347c1478f7ac0dce7c38336b88e9587e7c199570..f935ce85426787682630e72236801f64ff59378e 100644
--- a/dlls/winaspi/Makefile.in
+++ b/dlls/winaspi/Makefile.in
@@ -5,6 +5,7 @@ VPATH     = @srcdir@
 MODULE    = wnaspi32
 SOVERSION = 1.0
 ALTNAMES  = winaspi
+IMPORTS   = kernel32
 
 C_SRCS = \
 	aspi.c \
diff --git a/dlls/winaspi/wnaspi32.spec b/dlls/winaspi/wnaspi32.spec
index 043584be8877be92dc111efc420e7610867fcf46..6c1a86ad5b9b90e00c7e905aecd5bb91fd8273a2 100644
--- a/dlls/winaspi/wnaspi32.spec
+++ b/dlls/winaspi/wnaspi32.spec
@@ -2,6 +2,8 @@ name	wnaspi32
 type	win32
 init	WNASPI32_LibMain
 
+import	kernel32.dll
+
 1 stdcall GetASPI32SupportInfo() GetASPI32SupportInfo
 2 cdecl SendASPI32Command(ptr) SendASPI32Command
 4 stdcall GetASPI32DLLVersion() GetASPI32DLLVersion
diff --git a/dlls/wineps/Makefile.in b/dlls/wineps/Makefile.in
index 354368bacfcff74a3e1295cbafb08dfd57bb9f84..b5f57554b48d38eae0a7a6adac69812aa6ea3c38 100644
--- a/dlls/wineps/Makefile.in
+++ b/dlls/wineps/Makefile.in
@@ -5,7 +5,7 @@ VPATH     = @srcdir@
 MODULE    = wineps
 SOVERSION = 1.0
 ALTNAMES  = wineps16
-IMPORTS   = gdi32
+IMPORTS   = gdi32 kernel32
 
 C_SRCS = \
 	afm.c \
diff --git a/dlls/wineps/wineps.spec b/dlls/wineps/wineps.spec
index e3d5bb89aa70d3cb987b425886a05cc1dadc3d76..4fc1eb88fce49028c02fcea4c30414900e0dc7ae 100644
--- a/dlls/wineps/wineps.spec
+++ b/dlls/wineps/wineps.spec
@@ -3,3 +3,4 @@ type	win32
 init	PSDRV_Init
 
 import	gdi32.dll
+import	kernel32.dll
diff --git a/dlls/wininet/Makefile.in b/dlls/wininet/Makefile.in
index b9f5c4b461913d28037c5e81a3def152c1a2b718..cb1e1f7f0b0b1f828ccc89cee29d042a89aecbf8 100644
--- a/dlls/wininet/Makefile.in
+++ b/dlls/wininet/Makefile.in
@@ -4,6 +4,7 @@ SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = wininet
 SOVERSION = 1.0
+IMPORTS   = kernel32
 
 C_SRCS = \
 	http.c \
diff --git a/dlls/wininet/wininet.spec b/dlls/wininet/wininet.spec
index 2e028fbbba99fd75f9e3dae258478d501e17bee3..d6442f92435c2a3a46a13d1779f5d02809eb1085 100644
--- a/dlls/wininet/wininet.spec
+++ b/dlls/wininet/wininet.spec
@@ -2,6 +2,8 @@ name    wininet
 type    win32
 init    WININET_LibMain
 
+import	kernel32.dll
+
 @ stub InternetInitializeAutoProxyDll
 @ stub ShowCertificate
 @ stub CommitUrlCacheEntryA
diff --git a/dlls/winmm/Makefile.in b/dlls/winmm/Makefile.in
index 8f888738bf3a4594e76a240dea0a8d6cb1ce9914..e9907b5f3fa2b92cfcbbc1fc0a64f6859328c56c 100644
--- a/dlls/winmm/Makefile.in
+++ b/dlls/winmm/Makefile.in
@@ -5,7 +5,7 @@ VPATH     = @srcdir@
 MODULE    = winmm
 SOVERSION = 1.0
 ALTNAMES  = mmsystem sound
-IMPORTS   = user32
+IMPORTS   = user32 kernel32
 
 C_SRCS = \
 	joystick.c \
diff --git a/dlls/winmm/winmm.spec b/dlls/winmm/winmm.spec
index 835651771159abbf7a3fff2a22529acd1ca2bea5..68446516520877d35fa9dad8f70904f9e2fe6e4b 100644
--- a/dlls/winmm/winmm.spec
+++ b/dlls/winmm/winmm.spec
@@ -4,6 +4,7 @@ init WINMM_LibMain
 rsrc winmm_res
 
 import user32.dll
+import kernel32.dll
 
 # ordinal exports
 1 stdcall @(ptr long long) PlaySoundA
diff --git a/dlls/winsock/Makefile.in b/dlls/winsock/Makefile.in
index 37955f31217dc674e70f0a582c416a20e5e423b1..f7f195c019b0280374c8f6221b657140f87b20a1 100644
--- a/dlls/winsock/Makefile.in
+++ b/dlls/winsock/Makefile.in
@@ -5,7 +5,7 @@ VPATH     = @srcdir@
 MODULE    = ws2_32
 SOVERSION = 1.0
 ALTNAMES  = winsock
-IMPORTS   = user32
+IMPORTS   = user32 kernel32
 
 C_SRCS = \
 	async.c \
diff --git a/dlls/winsock/ws2_32.spec b/dlls/winsock/ws2_32.spec
index 0a6289a7fb28859c1afbbe28f1628a162b471dd4..725204e7814f5a55f56d96a9a2e65b7c6d9cff59 100644
--- a/dlls/winsock/ws2_32.spec
+++ b/dlls/winsock/ws2_32.spec
@@ -7,6 +7,7 @@ type win32
 init WSOCK32_LibMain
 
 import user32.dll
+import kernel32.dll
 
 #  EXPORTS ***********
 1   stdcall  accept(long ptr ptr) WSOCK32_accept
diff --git a/dlls/winspool/Makefile.in b/dlls/winspool/Makefile.in
index 25f3bfb1733dab10a736af0e67938c0ad9eefb63..2525288a3f8630d8fb9dada44eb80a5080662eaa 100644
--- a/dlls/winspool/Makefile.in
+++ b/dlls/winspool/Makefile.in
@@ -4,7 +4,7 @@ SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = winspool.drv
 SOVERSION = 1.0
-IMPORTS   = gdi32
+IMPORTS   = gdi32 advapi32 kernel32
 
 C_SRCS = \
 	info.c \
diff --git a/dlls/winspool/winspool.drv.spec b/dlls/winspool/winspool.drv.spec
index c4aa42c90159b04153025fd2d75f12a264cd3fe1..1e57f9fa768fda21f10d6aba71c6f1a2555b9b48 100644
--- a/dlls/winspool/winspool.drv.spec
+++ b/dlls/winspool/winspool.drv.spec
@@ -4,6 +4,8 @@ file	winspool.drv
 init	WINSPOOL_EntryPoint
 
 import	gdi32.dll
+import	advapi32.dll
+import	kernel32.dll
 
 101 stub ADVANCEDSETUPDIALOG
 102 stub AbortPrinter