diff --git a/ghc/compiler/Makefile b/ghc/compiler/Makefile
index def8f02f919c3725eb54a5cc31caf06e4ed0e01b..a5a8e45de89e55b2b67c9a8824fdbd0198c68924 100644
--- a/ghc/compiler/Makefile
+++ b/ghc/compiler/Makefile
@@ -1,5 +1,5 @@
 # -----------------------------------------------------------------------------
-# $Id: Makefile,v 1.40 1998/05/21 10:32:03 simonm Exp $
+# $Id: Makefile,v 1.41 1998/05/22 09:09:56 simonm Exp $
 
 TOP = ..
 include $(TOP)/mk/boilerplate.mk
@@ -187,12 +187,24 @@ typecheck/TcExpr_HC_OPTS	= -H15m
 typecheck/TcEnv_HC_OPTS		= -H10m
 utils/Argv_HC_OPTS 		= -fvia-C
 utils/SST_HC_OPTS 		= -fvia-C
-utils/PrimPacked_HC_OPTS	= -fvia-C -monly-3-regs -funfolding-interface-threshold10
 utils/FastString_HC_OPTS	= -fvia-C
 utils/StringBuffer_HC_OPTS	= -fvia-C -fno-prune-tydecls
 utils/Digraph_HC_OPTS		= -fglasgow-exts -fvia-C
 utils/DirUtils_HC_OPTS 		= -fvia-C
 
+# flags for PrimPacked:
+#
+# -monly-3-regs 
+#	because it contains a 'ccall strlen', which gets inlined by
+# 	gcc, causing a lack of registers.
+#
+# -optC-funfolding-interface-threshold10
+#	To stop the definition of 'strLength', which calls strlen, getting
+#	into the interface file and spreading the -monly-3-regs virus.
+#	We need -optC here because the driver before 3.02 didn't understand
+#	the -funfolding flags.
+
+utils/PrimPacked_HC_OPTS	= -fvia-C -monly-3-regs -optC-funfolding-interface-threshold10
 
 # Strictness analyser misbehaving in 2.10, fails to terminate on
 # UpdAnal.lhs due to weird recursive datatype.  Bug was exposed by a