diff --git a/compiler/GHC/Core/Unfold.hs b/compiler/GHC/Core/Unfold.hs
index 4792545df7007b5809be2d56464c88f5168cef49..c53af7438044a60531ebc5a93e9c1ee18ff2cac0 100644
--- a/compiler/GHC/Core/Unfold.hs
+++ b/compiler/GHC/Core/Unfold.hs
@@ -16,6 +16,7 @@ find, unsurprisingly, a Core expression.
 -}
 
 {-# LANGUAGE CPP #-}
+{-# LANGUAGE BangPatterns #-}
 
 {-# OPTIONS_GHC -Wno-incomplete-record-updates #-}
 
@@ -614,7 +615,9 @@ sizeExpr :: DynFlags
 
 -- Note [Computing the size of an expression]
 
-sizeExpr dflags bOMB_OUT_SIZE top_args expr
+-- Forcing bOMB_OUT_SIZE early prevents repeated
+-- unboxing of the Int argument.
+sizeExpr dflags !bOMB_OUT_SIZE top_args expr
   = size_up expr
   where
     size_up (Cast e _) = size_up e