diff --git a/src/configure.in b/src/configure.in
index 64eee0a829a80b2fcb0f9bf125c4bf39fbdc0091..cea62a49b49e18572f6c31ee88971ce91db51366 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -1,4 +1,4 @@
-AC_REVISION("$Id: configure.in,v 1.272 1999/03/26 19:29:50 hubbe Exp $")
+AC_REVISION("$Id: configure.in,v 1.273 1999/04/12 23:49:33 grubba Exp $")
 AC_INIT(interpret.c)
 AC_CONFIG_HEADER(machine.h)
 
@@ -2757,8 +2757,19 @@ AC_MSG_CHECKING(CCSHARED)
 if test -z "$CCSHARED" ; then
   if test "$GCC" = yes ; then
     case $pike_cv_sys_os in
-      BSD/OS*) CCSHARED="";;
-      *) CCSHARED="-fpic";;
+      BSD/OS*)
+	CCSHARED=""
+      ;;
+      Solaris*)
+        # The Image module runs out of symbol reference space unless we
+	# use the large PIC model:
+	# ld: fatal: too many symbols require `small' PIC references:
+        # 	have 2205, maximum 2048 -- recompile some modules -K PIC.
+	CCSHARED="-fPIC"
+      ;;
+      *)
+	CCSHARED="-fpic"
+      ;;
     esac
   else
     case $pike_cv_sys_os in