diff --git a/src/configure.in b/src/configure.in
index eb95068967cac35b31ab63dce3c6f0dab15e8a6f..444ec2b8a574e2862fe2628308ca611bcffeb3e6 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -1,4 +1,4 @@
-AC_REVISION("$Id: configure.in,v 1.554 2001/10/05 17:03:24 grubba Exp $")
+AC_REVISION("$Id: configure.in,v 1.555 2001/10/05 18:43:53 hubbe Exp $")
 AC_INIT(interpret.c)
 AC_CONFIG_HEADER(machine.h)
 
@@ -606,6 +606,7 @@ if test "$GCC" = "yes"; then
 fi
 
 LD='$(CC) $(CFLAGS)'
+LC_REQ="-lc"
 
 case "$pike_cv_sys_os" in
   SCO*)
@@ -651,6 +652,7 @@ case "$pike_cv_sys_os" in
 	  # We are using built-in inline function
 	  CFLAGS="$CFLAGS -Kalloca"
 	  CXX="$CXX -DNO_CPLUSPLUS_ALLOCA"
+	  LC_REQ=""
 	fi
       ;;
     esac
@@ -658,6 +660,7 @@ case "$pike_cv_sys_os" in
 esac
 
 AC_SUBST(LD)
+AC_SUBST(LC_REQ)
 
 #############################################################################
 
diff --git a/src/modules/dynamic_module_makefile.in b/src/modules/dynamic_module_makefile.in
index 7ce48eb7cabe0dd7a25a14dc7c4567821cd633ce..1b75e57386b80233d11b62211d809dbfe8438d11 100644
--- a/src/modules/dynamic_module_makefile.in
+++ b/src/modules/dynamic_module_makefile.in
@@ -1,5 +1,5 @@
 #
-# $Id: dynamic_module_makefile.in,v 1.76 2001/09/01 15:20:07 mast Exp $
+# $Id: dynamic_module_makefile.in,v 1.77 2001/10/05 18:43:53 hubbe Exp $
 #
 
 
@@ -10,6 +10,7 @@ LIBGCC=@LIBGCC@
 REAL_LDFLAGS=@LDFLAGS@
 REAL_CFLAGS=@CFLAGS@
 REAL_CPPFLAGS=@CPPFLAGS@
+LC_REQ=@LC_REQ@
 
 PIKE_SRC_DIR=$(SRCDIR)/../..
 BUILD_BASE=../..
@@ -95,17 +96,14 @@ $(SRCDIR)/configure: $(SRCDIR)/configure.in $(PIKE_SRC_DIR)/aclocal.m4
 config.status: $(SRCDIR)/configure
 	CFLAGS="$(REAL_CFLAGS)" LDFLAGS="$(REAL_LDFLAGS)" CPPFLAGS="$(REAL_CPPFLAGS)" CONFIG_FILES=Makefile CONFIG_HEADERS="$(CONFIG_HEADERS)" ./config.status --recheck
 
-# FIXME:
-#  Move -lc $(LIBGCC) into a configurable variable and make sure it is empty on UnixWare
-#
 
 module.so: $(OBJS)  $(MODULE_ARCHIVES)
 	@echo "Linking $(MODNAME)" ;\
-	if $(TMP_BINDIR)/smartlink "@LDSHARED@" $(LDFLAGS) -o module.@SO@ $(OBJS) $(MODULE_ARCHIVES) $(MODULE_LDFLAGS) $(LIBGCC) -lc $(LIBGCC) ; then \
+	if $(TMP_BINDIR)/smartlink "@LDSHARED@" $(LDFLAGS) -o module.@SO@ $(OBJS) $(MODULE_ARCHIVES) $(MODULE_LDFLAGS) $(LIBGCC) $(LC_REQ) $(LIBGCC) ; then \
 	  if test @SO@ != so ; then mv module.@SO@ module.so ; else :; fi ;\
 	else \
 	  echo "Linking failed:" >&2; \
-	  echo $(TMP_BINDIR)/smartlink "@LDSHARED@" $(LDFLAGS) -o module.@SO@ $(OBJS) $(MODULE_ARCHIVES) $(MODULE_LDFLAGS) $(LIBGCC) -lc $(LIBGCC) >&2 ;\
+	  echo $(TMP_BINDIR)/smartlink "@LDSHARED@" $(LDFLAGS) -o module.@SO@ $(OBJS) $(MODULE_ARCHIVES) $(MODULE_LDFLAGS) $(LIBGCC) $(LC_REQ) $(LIBGCC) >&2 ;\
 	  exit 1; \
 	fi