diff --git a/ghc/compiler/main/CmdLineOpts.lhs b/ghc/compiler/main/CmdLineOpts.lhs
index 0c8dfca45619c4d29387d649af26798bcf861e8e..09fbaa9bbff69fb5714d1b757238c0ad8f216d53 100644
--- a/ghc/compiler/main/CmdLineOpts.lhs
+++ b/ghc/compiler/main/CmdLineOpts.lhs
@@ -86,6 +86,7 @@ module CmdLineOpts (
 	opt_UnfoldingCreationThreshold,
 	opt_UnfoldingConDiscount,
 	opt_UnfoldingUseThreshold,
+	opt_UnfoldingKeenessFactor,
 
 	opt_Verbose,
 	opt_WarnNameShadowing,
@@ -241,10 +242,11 @@ data SimplifierSwitch
 %************************************************************************
 
 \begin{code}
-lookUp	       :: FAST_STRING -> Bool
-lookup_int     :: String -> Maybe Int
-lookup_def_int :: String -> Int -> Int
-lookup_str     :: String -> Maybe String
+lookUp	       	 :: FAST_STRING -> Bool
+lookup_int     	 :: String -> Maybe Int
+lookup_def_int   :: String -> Int -> Int
+lookup_def_float :: String -> Float -> Float
+lookup_str       :: String -> Maybe String
 
 lookUp     sw = maybeToBool (assoc_opts sw)
 	
@@ -258,6 +260,10 @@ lookup_def_int sw def = case (lookup_str sw) of
 			    Nothing -> def		-- Use default
 		  	    Just xx -> read xx
 
+lookup_def_float sw def = case (lookup_str sw) of
+			    Nothing -> def		-- Use default
+		  	    Just xx -> read xx
+
 assoc_opts    = assocMaybe [ (a, True) | a <- argv ]
 unpacked_opts = map _UNPK_ argv
 \end{code}
@@ -336,6 +342,7 @@ opt_UnfoldingUseThreshold	= lookup_def_int "-funfolding-use-threshold"	   uNFOLD
 opt_UnfoldingConDiscount	= lookup_def_int "-funfolding-con-discount"	   uNFOLDING_CON_DISCOUNT_WEIGHT
 			
 opt_LiberateCaseThreshold	= lookup_def_int "-fliberate-case-threshold"	   lIBERATE_CASE_THRESHOLD
+opt_UnfoldingKeenessFactor	= lookup_def_float "-funfolding-keeness-factor"	   uNFOLDING_KEENESS_FACTOR
 opt_WarnNameShadowing		= lookUp  SLIT("-fwarn-name-shadowing")
 opt_WarnIncompletePatterns	= lookUp  SLIT("-fwarn-incomplete-patterns")
 opt_WarnOverlappedPatterns	= lookUp  SLIT("-fwarn-overlapped-patterns")