diff --git a/dlls/Makedll.rules.in b/dlls/Makedll.rules.in
index 7dab0b6e8aad923e22e115ffa3be733c94d57734..922f0112b5f84c56cef214660c19e264614dc128 100644
--- a/dlls/Makedll.rules.in
+++ b/dlls/Makedll.rules.in
@@ -24,7 +24,7 @@ all: lib$(MODULE).$(LIBEXT) $(ALTNAMES:%=lib%.$(LIBEXT))
 # Rules for .so files
 
 lib$(MODULE).so.$(SOVERSION): $(OBJS) Makefile.in $(TOPSRCDIR)/Make.rules.in
-	$(LDSHARED) $(OBJS) -o $@ -L$(DLLDIR) $(IMPORTS:%=-l%) -L$(TOPOBJDIR) -lwine -lwine_unicode $(EXTRALIBS)
+	$(LDSHARED) $(OBJS) -o $@ -L$(DLLDIR) $(IMPORTS:%=-l%) -L$(TOPOBJDIR) -lwine $(EXTRALIBS)
 
 $(ALLNAMES): lib$(MODULE).so.$(SOVERSION)
 	$(RM) $@ && $(LN_S) lib$(MODULE).so.$(SOVERSION) $@
@@ -42,7 +42,7 @@ $(ALTNAMES:%=lib%.a): lib$(MODULE).a
 # Rules for checking that no imports are missing
 
 checklink:: lib$(MODULE).$(LIBEXT)
-	$(CC) -o checklink $(TOPSRCDIR)/library/checklink.c -L. -l$(MODULE) -L$(TOPOBJDIR) -lwine -lwine_unicode $(EXTRALIBS) $(LIBS) && $(RM) checklink
+	$(CC) -o checklink $(TOPSRCDIR)/library/checklink.c -L. -l$(MODULE) -L$(TOPOBJDIR) -lwine $(EXTRALIBS) $(LIBS) && $(RM) checklink
 
 # Rules for debug channels
 
diff --git a/dlls/ntdll/Makefile.in b/dlls/ntdll/Makefile.in
index 1d7450fd7b961f3696a503eb082e6e8b2bbee2cb..7eac3b051fb9cfde7e72e47fdd08479b53ec1a15 100644
--- a/dlls/ntdll/Makefile.in
+++ b/dlls/ntdll/Makefile.in
@@ -4,6 +4,7 @@ SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = ntdll
 SOVERSION = 1.0
+EXTRALIBS = -lwine_unicode
 
 C_SRCS = \
 	critsection.c \
diff --git a/dlls/ttydrv/Makefile.in b/dlls/ttydrv/Makefile.in
index 1c5548be6cc87bbac9e5d5d2ac16bd09c299a68c..2b9c7d849083e8cc337e4a2f6a2eaea39cd27475 100644
--- a/dlls/ttydrv/Makefile.in
+++ b/dlls/ttydrv/Makefile.in
@@ -4,7 +4,6 @@ SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = ttydrv
 SOVERSION = 1.0
-EXTRALIBS = $(LIBS)
 IMPORTS   = user32 gdi32 kernel32 ntdll
 
 C_SRCS = \