diff --git a/src/Makefile.in b/src/Makefile.in
index 2e5efbb5ded6eb410d25ffe424fdca4f4a0a1e9a..2f267cf15853b05a706fede7993607976009936e 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -1,5 +1,5 @@
 #
-# $Id: Makefile.in,v 1.154 1999/09/14 22:50:22 hubbe Exp $
+# $Id: Makefile.in,v 1.155 1999/10/04 19:36:49 hubbe Exp $
 #
 
 # This line is needed on some machines.
@@ -207,13 +207,24 @@ hilfe: $(TMP_BINDIR)/hilfe Makefile
 	@echo "Done."
 
 
+.SUFFIXES: .c .o
+
 # Several optimizers have problems with interpret.c
 # First try compiling with optimization and if that doesn't work, without.
-interpret.o: $(SRCDIR)/interpret.c
-	$(CC) $(CFLAGS) -c $(SRCDIR)/interpret.c -o interpret.o || NO_ULIMIT=yes $(CC) $(PREFLAGS) $(NOOPTFLAGS) -c $(SRCDIR)/interpret.c -o interpret.o 
+# GCC dumps core on some files @ OSF1
+# This kluge should work around that...
+# FIXME: Make this a configure option
+.c.o:
+	@echo "Compiling $<" ;\
+	if $(CC) $(CFLAGS) -c $< -o $@ ; then : ;\
+	else \
+	echo "WARNING: Compiler failiure! Trying without optimization!" ;\
+	echo "echo $(CC) $(PREFLAGS) $(NOOPTFLAGS) -c $< -o $@" ;\
+	NO_ULIMIT=yes $(CC) $(PREFLAGS) $(NOOPTFLAGS) -c $< -o $@ ;\
+	fi
 
 force :
-
+	@:
 
 # install
 install: pike hilfe pike-module aclocal
diff --git a/src/modules/dynamic_module_makefile.in b/src/modules/dynamic_module_makefile.in
index 381ac5bb242e998c09eec8874bf0d91b99888550..4005aa9b9ba22dd98170fd7df969c2e5268306ad 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.56 1999/10/04 03:04:32 hubbe Exp $
+# $Id: dynamic_module_makefile.in,v 1.57 1999/10/04 19:37:03 hubbe Exp $
 #
 
 
@@ -36,6 +36,20 @@ dummy:	$(DUMMY) linker_options modlist_headers modlist_segment module.so
 	if [ -f $(SRCDIR)/module.pmod.in ]; then sed -e "s/@module@/.$$tmp2/" <$(SRCDIR)/module.pmod.in >$(TMP_LIBDIR)/modules/$$tmp.pmod ; else if [ -f ./module.pmod.in ]; then sed -e "s/@module@/.$$tmp2/" <./module.pmod.in >$(TMP_LIBDIR)/modules/$$tmp.pmod; else tmp2="$$tmp"; fi; fi ; \
 	$(TMP_BINDIR)/install_module module.so $(TMP_LIBDIR)/modules/$$tmp2.so
 
+.SUFFIXES: .c .o
+
+# GCC dumps core on some files @ OSF1
+# This kluge should work around that...
+# FIXME: Make this a configure option
+.c.o:
+	@echo "Compiling $<" ;\
+	if $(CC) $(CFLAGS) -c $< -o $@ ; then : ;\
+	else \
+	echo "WARNING: Compiler failiure! Trying without optimization!" ;\
+	echo "echo $(CC) $(PREFLAGS) $(NOOPTFLAGS) -c $< -o $@" ;\
+	NO_ULIMIT=yes $(CC) $(PREFLAGS) $(NOOPTFLAGS) -c $< -o $@ ;\
+	fi
+
 linker_options: Makefile
 	echo "$(LINKER_OPTIONS)" >linker_options
 
diff --git a/src/modules/static_module_makefile.in b/src/modules/static_module_makefile.in
index b773630a4bb3cf02790d945d51fb7f26cbe6ee4f..9c607bbedc11a4eb18234346ab3c61d78667670c 100644
--- a/src/modules/static_module_makefile.in
+++ b/src/modules/static_module_makefile.in
@@ -1,5 +1,5 @@
 #
-# $Id: static_module_makefile.in,v 1.50 1999/10/04 03:04:33 hubbe Exp $
+# $Id: static_module_makefile.in,v 1.51 1999/10/04 19:37:02 hubbe Exp $
 #
 
 
@@ -32,6 +32,20 @@ dummy:	linker_options modlist_headers modlist_segment module.pmod module.a
 	if test x$$tmp = x ; then tmp="$(MODNAME)"; else :; fi ;\
 	$(TMP_BINDIR)/install_module module.pmod $(TMP_LIBDIR)/modules/$$tmp.pmod
 
+.SUFFIXES: .c .o
+
+# GCC dumps core on some files @ OSF1
+# This kluge should work around that...
+# FIXME: Make this a configure option
+.c.o:
+	@echo "Compiling $<" ;\
+	if $(CC) $(CFLAGS) -c $< -o $@ ; then : ;\
+	else \
+	echo "WARNING: Compiler failiure! Trying without optimization!" ;\
+	echo "echo $(CC) $(PREFLAGS) $(NOOPTFLAGS) -c $< -o $@" ;\
+	NO_ULIMIT=yes $(CC) $(PREFLAGS) $(NOOPTFLAGS) -c $< -o $@ ;\
+	fi
+
 linker_options: Makefile $(MODULE_ARCHIVES)
 	echo >linker_options modules/$(MODNAME)/module.a $(MODULE_LDFLAGS)
 	@for a in '' $(MODULE_ARCHIVES) ; do \