diff --git a/Makefile.am b/Makefile.am
index 5d9e8aad486dc451d7b90a904cfae74d19b45436..a0ca2d1654a987d177772220e83eb25e32009072 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -138,9 +138,9 @@ SHLIBOBJECTS = $(patsubst %.c,%_p.$(OBJEXT),$(libnettle_a_SOURCES)) \
 # The point of the sym links is to use -Lnettle-dir at linktime,
 # and LD_LIBRARY_PATH=nettle-dir/.lib at run time.
 $(SHLIBFORLINK): $(SHLIBOBJECTS)
-	$(SHLIBLINK) $^ -o $@
+	$(SHLIBLINK) $^ -o $@ $(SHLIBLIBS)
 	-mkdir .lib 2>/dev/null
-	( [ -z "$(SHLIBSONAME)" ] || cd .lib \
+	[ -z "$(SHLIBSONAME)" ] || (cd .lib \
           && ln -sf ../$(SHLIBFORLINK) $(SHLIBSONAME))
 
 endif
@@ -151,8 +151,8 @@ install-data-local: $(SHLIBINSTALL)
 
 install-shared: $(SHLIBFORLINK)
 	$(INSTALL_DATA) $(SHLIBFORLINK) $(DESTDIR)$(libdir)/$(SHLIBFILE)
-	( [ -z "$(SHLIBSONAME)" ] \
-                || cd $(DESTDIR)$(libdir) \
+	[ -z "$(SHLIBSONAME)" ] \
+                || (cd $(DESTDIR)$(libdir) \
 		&& ln -sf $(SHLIBFILE) $(SHLIBSONAME) \
 		&& ln -sf $(SHLIBFILE) $(SHLIBFORLINK) )
 
diff --git a/configure.ac b/configure.ac
index 559a55f847f056256056bef53c30ac212f098a6b..5c6e14762889524dc61859c11623bf0a67a3cc78 100644
--- a/configure.ac
+++ b/configure.ac
@@ -125,13 +125,16 @@ case `uname -sr` in
     SHLIBFORLINK='cygnettle-$(SHLIBMAJOR)-$(SHLIBMINOR).dll'
     SHLIBSONAME=''
     SHLIBFILE='libnettle.dll.a'
-    SHLIBLINK='$(CC) $(LDFLAGS) -shared -Wl,--out-implib=$(SHLIBFILE) -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--whole-archive'
+    SHLIBLINK='$(CC) $(LDFLAGS) -shared -Wl,--out-implib=$(SHLIBFILE) -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--no-whole-archive'
+    SHLIBLIBS='$(LIBS)'
     ;;
   *)
     SHLIBFORLINK=libnettle.so
     SHLIBSONAME='$(SHLIBFORLINK).$(SHLIBMAJOR)'
     SHLIBFILE='$(SHLIBSONAME).$(SHLIBMINOR)'
     SHLIBLINK='$(CC) $(LDFLAGS) -shared -Wl,-soname=$(SHLIBSONAME)'
+    # FIXME: It might make some sense to link with -lgmp
+    SHLIBLIBS=''
     ;;
 esac
 
@@ -159,7 +162,8 @@ AC_SUBST(SHLIBFILE)
 AC_SUBST(SHLIBLINK)
 AC_SUBST(SHLIBTARGET)
 AC_SUBST(SHLIBINSTALL)
-	
+AC_SUBST(SHLIBLIBS)
+
 AC_PATH_PROG(M4, m4, m4)
 
 # Checks for typedefs, structures, and compiler characteristics.