diff --git a/ghc/compiler/coreSyn/CoreUnfold.lhs b/ghc/compiler/coreSyn/CoreUnfold.lhs
index 480edbb50548afb1f87b943da8fd333949f76bd4..02db3cbf640096b0b87e04c37ec00c0198753a8d 100644
--- a/ghc/compiler/coreSyn/CoreUnfold.lhs
+++ b/ghc/compiler/coreSyn/CoreUnfold.lhs
@@ -466,7 +466,8 @@ okToUnfoldInHiFile e = opt_UnfoldCasms || go e
     go (App fun arg)          = go fun && go arg
     go (Lam _ body)           = go body
     go (Let binds body)       = and (map go (body :rhssOfBind binds))
-    go (Case scrut bndr alts) = and (map go (scrut:rhssOfAlts alts))
+    go (Case scrut bndr alts) = and (map go (scrut:rhssOfAlts alts)) &&
+				not (any isLitLitLit [ lit | (LitAlt lit, _, _) <- alts ])
     go (Note _ body)          = go body
     go (Type _)		      = True