diff --git a/pymbolic/mapper/c_code.py b/pymbolic/mapper/c_code.py
index 51ed3c4fbe1c26b10d571043b0bed2b9fc41b295..d4d38cacd18204e6b07bab04f89cad0e28411a49 100644
--- a/pymbolic/mapper/c_code.py
+++ b/pymbolic/mapper/c_code.py
@@ -55,7 +55,7 @@ class CCodeMapper(SimplifyingSortingStringifyMapper):
 
     def map_common_subexpression(self, expr, enclosing_prec):
         try:
-            cse_name = self.cse_to_name[expr]
+            cse_name = self.cse_to_name[expr.child]
         except KeyError:
             from pymbolic.mapper.stringifier import PREC_NONE
             cse_str = self.rec(expr.child, PREC_NONE)
@@ -82,6 +82,8 @@ class CCodeMapper(SimplifyingSortingStringifyMapper):
             self.cse_to_name[expr.child] = cse_name
             self.cse_names.add(cse_name)
 
+            assert len(self.cse_names) == len(self.cse_to_name)
+
         return cse_name
 
     def map_if_positive(self, expr, enclosing_prec):