diff --git a/ghc/compiler/deSugar/DsExpr.lhs b/ghc/compiler/deSugar/DsExpr.lhs
index de10fcd5ca3f64042edb6f59cd32b6375f45c30e..698b48ad314e6fee3f7ce1b17093aaabdd13967e 100644
--- a/ghc/compiler/deSugar/DsExpr.lhs
+++ b/ghc/compiler/deSugar/DsExpr.lhs
@@ -184,6 +184,9 @@ dsExpr (HsLitOut (HsString str) _)
   = returnDs (mkLit (NoRepStr str stringTy))
 
 dsExpr (HsLitOut (HsLitLit str) ty)
+  | isUnLiftedType ty
+  = returnDs (mkLit (MachLitLit str ty))
+  | otherwise
   = case (maybeBoxedPrimType ty) of
       Just (boxing_data_con, prim_ty) ->
 	    returnDs ( mkConApp boxing_data_con [mkLit (MachLitLit str prim_ty)] )