diff --git a/ghc/compiler/simplCore/SimplEnv.lhs b/ghc/compiler/simplCore/SimplEnv.lhs
index 68453bc3e3477e4e98a471e42d1226567e2ec1d7..b18468267a6745327f915d9479967fb56f413599 100644
--- a/ghc/compiler/simplCore/SimplEnv.lhs
+++ b/ghc/compiler/simplCore/SimplEnv.lhs
@@ -50,14 +50,15 @@ IMP_Ubiq(){-uitous-}
 IMPORT_DELOOPER(SmplLoop)		-- breaks the MagicUFs / SimplEnv loop
 #endif
 
-import BinderInfo	( orBinderInfo, andBinderInfo, noBinderInfo,
-			  BinderInfo(..){-instances, too-}, FunOrArg, DuplicationDanger, InsideSCC
+import BinderInfo	( orBinderInfo, andBinderInfo, noBinderInfo, isOneOcc,
+			  okToInline, 
+			  BinderInfo {-instances, too-}
 			)
 import CmdLineOpts	( switchIsOn, intSwitchSet, opt_UnfoldingCreationThreshold,
 			  SimplifierSwitch(..), SwitchResult(..)
 			)
 import CoreSyn
-import CoreUnfold	( mkFormSummary, okToInline, couldBeSmallEnoughToInline,
+import CoreUnfold	( mkFormSummary, couldBeSmallEnoughToInline, whnfOrBottom,
 			  Unfolding(..), UfExpr, RdrName,
 			  SimpleUnfolding(..), FormSummary(..),
 			  calcUnfoldingGuidance, UnfoldingGuidance(..)
@@ -602,7 +603,9 @@ extendEnvGivenBinding env@(SimplEnv chkr encl_cc ty_env in_id_env out_id_env con
 	              occ_info out_id rhs
   = SimplEnv chkr encl_cc ty_env in_id_env new_out_id_env new_con_apps 
   where
-    new_out_id_env | okToInline form occ_info (couldBeSmallEnoughToInline guidance) 
+    new_out_id_env | okToInline (whnfOrBottom form) 
+				(couldBeSmallEnoughToInline guidance) 
+				occ_info 
 		   = out_id_env_with_unfolding
 		   | otherwise
 		   = out_id_env
@@ -647,8 +650,8 @@ extendEnvGivenBinding env@(SimplEnv chkr encl_cc ty_env in_id_env out_id_env con
 
     is_interesting v        = _scc_ "eegnr.mkidset" 
 			      case lookupIdEnv out_id_env v of
-				Just (_, OneOcc _ _ _ _ _, _) -> True
-				other			      -> False
+				Just (_, occ, _) -> isOneOcc occ
+				other	         -> False
 
 	-- Compute unfolding details
     rhs_info = OutUnfolding unf_cc (SimpleUnfolding form guidance template)