diff --git a/loopy/cse.py b/loopy/cse.py
index d6af30b42a3ac954d1639aad0a8b2b7c564b604d..e6d67227fe12c00f9ee1388d6a58d8db5a04a091 100644
--- a/loopy/cse.py
+++ b/loopy/cse.py
@@ -504,9 +504,13 @@ def realize_cse(kernel, cse_tag, dtype, independent_inames=[],
 
     cse_cb_mapper = CSECallbackMapper(subst_cses)
 
-    new_insns = [compute_insn] + [
-            insn.copy(expression=cse_cb_mapper(insn.expression))
-            for insn in kernel.instructions]
+    new_insns = [compute_insn]
+
+    for insn in kernel.instructions:
+        new_expr = cse_cb_mapper(insn.expression)
+        new_insns.append(insn.copy(
+            expression=new_expr,
+            forced_iname_deps=insn.all_inames()))
 
     # }}}