diff --git a/src/modules/dynamic_module_makefile.in b/src/modules/dynamic_module_makefile.in
index de43e161f653e7a8511fead96f5394b9086ae079..dca1f24a1c658279d80b602ac059cb62ea004ce3 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.73 2001/06/21 22:48:00 hubbe Exp $
+# $Id: dynamic_module_makefile.in,v 1.74 2001/07/06 17:35:43 grubba Exp $
 #
 
 
@@ -62,10 +62,12 @@ dummy:	$(DUMMY) linker_options modlist_headers modlist_segment module.so
 # FIXME: Make this a configure option
 .c.o:
 	@echo "Compiling $<" ;\
+	rm -f $@.fail >/dev/null 2>&1; \
 	if $(CC) $(CFLAGS) -c $< -o $@ ; then : ;\
 	else \
 	  echo "WARNING: Compiler failure! Trying without optimization!" >&2;\
-	  echo "echo $(CC) $(NOOPT_CFLAGS) -c $< -o $@" >&2;\
+	  echo "$(CC) $(NOOPT_CFLAGS) -c $< -o $@" >&2;\
+	  echo "$(CC) $(CFLAGS) -c $< -o $@" >$@.fail ;\
 	  NO_ULIMIT=yes $(CC) $(NOOPT_CFLAGS) -c $< -o $@ ;\
 	fi
 
@@ -110,7 +112,7 @@ module.so: $(OBJS)  $(MODULE_ARCHIVES)
 $(OBJS) : $(MODULE_BASE)/dynamic_module_makefile
 
 clean:
-	-rm -f *.o *.obj *.a *.so module.so linker_options modlist_headers modlist_segment module_testsuite $(MODULE_CLEAN_EXTRA)
+	-rm -f *.o *.fail *.obj *.a *.so module.so linker_options modlist_headers modlist_segment module_testsuite $(MODULE_CLEAN_EXTRA)
 	for a in '' $(MODULE_SUBDIRS) ; do if test "x$$a" = "x"; then :; else echo cleaning $$a ; ( cd $$a ; $(MAKE) $(MAKE_FLAGS) clean ) ; fi ; done
 
 
diff --git a/src/modules/static_module_makefile.in b/src/modules/static_module_makefile.in
index 79e7dcd6edceb102a30d7c57f7b3cfd3f61f068d..2c18895f60bfe35bf64f05407ce2b68d0ab1d41c 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.64 2001/06/21 22:48:00 hubbe Exp $
+# $Id: static_module_makefile.in,v 1.65 2001/07/06 17:35:44 grubba Exp $
 #
 
 
@@ -50,10 +50,12 @@ dummy:	linker_options modlist_headers modlist_segment module.pmod module.a
 # FIXME: Make this a configure option
 .c.o:
 	@echo "Compiling $<" ;\
+	rm -f $@.fail >/dev/null 2>&1; \
 	if $(CC) $(CFLAGS) -c $< -o $@ ; then : ;\
 	else \
 	  echo "WARNING: Compiler failure! Trying without optimization!" >&2;\
-	  echo "echo $(CC) $(NOOPT_CFLAGS) -c $< -o $@" >&2;\
+	  echo "$(CC) $(NOOPT_CFLAGS) -c $< -o $@" >&2;\
+	  echo "$(CC) $(CFLAGS) -c $< -o $@" >$@.fail ;\
 	  NO_ULIMIT=yes $(CC) $(NOOPT_CFLAGS) -c $< -o $@ ;\
 	fi
 
@@ -116,7 +118,7 @@ module.a: $(OBJS)
 $(OBJS) : $(MODULE_BASE)/dynamic_module_makefile
 
 clean:
-	-rm -f *.o *.obj *.a *.so module.so module.pmod linker_options modlist_headers modlist_segment module_testsuite $(MODULE_CLEAN_EXTRA)
+	-rm -f *.o *.fail *.obj *.a *.so module.so module.pmod linker_options modlist_headers modlist_segment module_testsuite $(MODULE_CLEAN_EXTRA)
 	for a in '' $(MODULE_SUBDIRS) ; do if test "x$$a" = "x"; then :; else echo cleaning $$a ; ( cd $$a ; $(MAKE) $(MAKE_FLAGS) clean ) ; fi ; done
 
 depend: