diff --git a/compiler/GHC/StgToJS/Expr.hs b/compiler/GHC/StgToJS/Expr.hs
index cf4267bc863c5434aab89fef654fa6da1ec42fc2..c379295d93f80d62cfd422b30ae55c05324b909d 100644
--- a/compiler/GHC/StgToJS/Expr.hs
+++ b/compiler/GHC/StgToJS/Expr.hs
@@ -232,10 +232,10 @@ genEntryLne ctx i rhs@(StgRhsClosure _ext _cc update args body typ) =
               (L.find ((==i) . fst . snd) (zip [0..] vars))
       mk_bh :: G JStgStat
       mk_bh | isUpdatable update =
-              do x <- Var <$> freshIdent
+              do x <- freshIdent
                  return $ mconcat
-                   [ x |= ApplExpr (var "h$bh_lne") [Sub sp (toJExpr myOffset), toJExpr (payloadSize+1)]
-                   , IfStat x (ReturnStat x) mempty
+                   [ x ||= ApplExpr (var "h$bh_lne") [Sub sp (toJExpr myOffset), toJExpr (payloadSize+1)]
+                   , IfStat (Var x) (ReturnStat (Var x)) mempty
                    ]
             | otherwise = pure mempty
   blk_hl <- mk_bh
@@ -913,11 +913,11 @@ loadParams from args = do
                             [ loadIfUsed (from .^ closureField1_) x1 u1
                             , loadIfUsed (from .^ closureField2_) x2 u2
                             ]
-    ((x,u):xs)         -> do d <- Var <$> freshIdent
+    ((x,u):xs)         -> do d <- freshIdent
                              return $ mconcat
                                [ loadIfUsed (from .^ closureField1_) x u
-                               , mconcat [ d |= from .^ closureField2_
-                                         , loadConVarsIfUsed d xs
+                               , mconcat [ d ||= from .^ closureField2_
+                                         , loadConVarsIfUsed (Var d) xs
                                          ]
                                ]
   where