diff --git a/configure b/configure
index 5901f6056256a11c1de86f9e84a9968d70df0348..6151ef893d7ba89de355f4deabdd77b243c4fabe 100755
--- a/configure
+++ b/configure
@@ -17901,7 +17901,7 @@ wine_fn_config_dll ntdll enable_ntdll implib
 wine_fn_config_test dlls/ntdll/tests ntdll_test
 wine_fn_config_dll ntdsapi enable_ntdsapi implib
 wine_fn_config_test dlls/ntdsapi/tests ntdsapi_test
-wine_fn_config_dll ntoskrnl.exe enable_ntoskrnl_exe implib
+wine_fn_config_dll ntoskrnl.exe enable_ntoskrnl_exe implib ntoskrnl
 wine_fn_config_dll ntprint enable_ntprint
 wine_fn_config_test dlls/ntprint/tests ntprint_test
 wine_fn_config_dll objsel enable_objsel clean
@@ -18047,7 +18047,7 @@ wine_fn_config_dll updspapi enable_updspapi
 wine_fn_config_dll url enable_url implib
 wine_fn_config_dll urlmon enable_urlmon clean,implib
 wine_fn_config_test dlls/urlmon/tests urlmon_test
-wine_fn_config_dll usbd.sys enable_usbd_sys implib
+wine_fn_config_dll usbd.sys enable_usbd_sys implib usbd
 wine_fn_config_dll user.exe16 enable_win16
 wine_fn_config_dll user32 enable_user32 clean,implib
 wine_fn_config_test dlls/user32/tests user32_test
diff --git a/configure.ac b/configure.ac
index 6f0cd70c2fd62027b20cfb861638b454e0f09721..a2b1705369767df1d2d7867ab459827847ea64e1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3147,7 +3147,7 @@ WINE_CONFIG_DLL(ntdll,,[implib])
 WINE_CONFIG_TEST(dlls/ntdll/tests)
 WINE_CONFIG_DLL(ntdsapi,,[implib])
 WINE_CONFIG_TEST(dlls/ntdsapi/tests)
-WINE_CONFIG_DLL(ntoskrnl.exe,,[implib])
+WINE_CONFIG_DLL(ntoskrnl.exe,,[implib],[ntoskrnl])
 WINE_CONFIG_DLL(ntprint)
 WINE_CONFIG_TEST(dlls/ntprint/tests)
 WINE_CONFIG_DLL(objsel,,[clean])
@@ -3293,7 +3293,7 @@ WINE_CONFIG_DLL(updspapi)
 WINE_CONFIG_DLL(url,,[implib])
 WINE_CONFIG_DLL(urlmon,,[clean,implib])
 WINE_CONFIG_TEST(dlls/urlmon/tests)
-WINE_CONFIG_DLL(usbd.sys,,[implib])
+WINE_CONFIG_DLL(usbd.sys,,[implib],[usbd])
 WINE_CONFIG_DLL(user.exe16,enable_win16)
 WINE_CONFIG_DLL(user32,,[clean,implib])
 WINE_CONFIG_TEST(dlls/user32/tests)
diff --git a/dlls/hidclass.sys/Makefile.in b/dlls/hidclass.sys/Makefile.in
index 6e79486c7d48d7d0d9cd62f5c94a78da062e0de6..e9422173994fb5e74d35371405f127b58bf797a4 100644
--- a/dlls/hidclass.sys/Makefile.in
+++ b/dlls/hidclass.sys/Makefile.in
@@ -1,6 +1,6 @@
 MODULE    = hidclass.sys
 IMPORTLIB = hidclass
-IMPORTS   = ntoskrnl.exe
+IMPORTS   = ntoskrnl
 DELAYIMPORTS = setupapi hid
 
 C_SRCS = \
diff --git a/dlls/mountmgr.sys/Makefile.in b/dlls/mountmgr.sys/Makefile.in
index 1195b5e3113dcc3568e2b2ad537da23187f0086a..bd1c2ee365bc9858eedc6064f16fd2a508820451 100644
--- a/dlls/mountmgr.sys/Makefile.in
+++ b/dlls/mountmgr.sys/Makefile.in
@@ -1,5 +1,5 @@
 MODULE    = mountmgr.sys
-IMPORTS   = uuid advapi32 ntoskrnl.exe
+IMPORTS   = uuid advapi32 ntoskrnl
 DELAYIMPORTS = user32
 EXTRADLLFLAGS = -Wb,--subsystem,native
 EXTRAINCL = $(DBUS_CFLAGS) $(HAL_CFLAGS)
diff --git a/dlls/ntoskrnl.exe/Makefile.in b/dlls/ntoskrnl.exe/Makefile.in
index adb13270fb6ecda1a55c155b7830e6f7ebe8ee66..875be8e86a839ad55a2d816cde5c1b435d2a4c73 100644
--- a/dlls/ntoskrnl.exe/Makefile.in
+++ b/dlls/ntoskrnl.exe/Makefile.in
@@ -1,5 +1,5 @@
 MODULE    = ntoskrnl.exe
-IMPORTLIB = ntoskrnl.exe
+IMPORTLIB = ntoskrnl
 
 C_SRCS = \
 	instr.c \
diff --git a/dlls/scsiport.sys/Makefile.in b/dlls/scsiport.sys/Makefile.in
index c5bc40197f3ec3f3a15550795c55ac3c11bc5cd0..5219c3e751d41571c36ee41396ba5b85afb5fc5f 100644
--- a/dlls/scsiport.sys/Makefile.in
+++ b/dlls/scsiport.sys/Makefile.in
@@ -1,5 +1,5 @@
 MODULE    = scsiport.sys
-IMPORTS   = ntoskrnl.exe
+IMPORTS   = ntoskrnl
 EXTRADLLFLAGS = -Wb,--subsystem,native
 
 C_SRCS = \
diff --git a/dlls/usbd.sys/Makefile.in b/dlls/usbd.sys/Makefile.in
index 81a157b9c0cd555a4ab73752c55272df9ad65c6d..32e7e71599428742314feb0a96aaf7ba89405c74 100644
--- a/dlls/usbd.sys/Makefile.in
+++ b/dlls/usbd.sys/Makefile.in
@@ -1,6 +1,6 @@
 MODULE    = usbd.sys
-IMPORTLIB = usbd.sys
-IMPORTS   = ntoskrnl.exe
+IMPORTLIB = usbd
+IMPORTS   = ntoskrnl
 EXTRADLLFLAGS = -Wb,--subsystem,native
 
 C_SRCS = \
diff --git a/programs/winedevice/Makefile.in b/programs/winedevice/Makefile.in
index fc1ffff9f7e242ba97167b4e7343c5be8cd6792f..a0a4450cafbc1dbfbac42eb448bf8e3e6a6c3ca0 100644
--- a/programs/winedevice/Makefile.in
+++ b/programs/winedevice/Makefile.in
@@ -1,6 +1,6 @@
 MODULE    = winedevice.exe
 APPMODE   = -mwindows -municode
-IMPORTS   = advapi32 ntoskrnl.exe
+IMPORTS   = advapi32 ntoskrnl
 
 C_SRCS = \
 	device.c
diff --git a/tools/make_makefiles b/tools/make_makefiles
index a5e8a05e35e82d70e03e52c406a28d00ad4e7caf..1a016667fc51a09665e00abd22d5abd3dd66cc48 100755
--- a/tools/make_makefiles
+++ b/tools/make_makefiles
@@ -485,6 +485,7 @@ sub update_makefiles(@)
                 die "Invalid MODULE in $file" unless $make{"MODULE"} eq "$name.dll";
             }
             my $implib = $make{"IMPORTLIB"} || "";
+            die "Invalid IMPORTLIB name in $file" if $implib =~ /\./;
             $args .= "," if $is_win16 || defined $make{"=flags"};
             $args .= "enable_win16" if $is_win16;
             $args .= $flag_args;