diff --git a/src/mapper/__init__.py b/src/mapper/__init__.py
index d54d1dafd9c50b5a509196cde2e7fa14e7578740..7817546eb39367688bbf28ff7666083351159899 100644
--- a/src/mapper/__init__.py
+++ b/src/mapper/__init__.py
@@ -195,7 +195,9 @@ class IdentityMapperBase(object):
         return result
 
     def map_common_subexpression(self, expr, *args, **kwargs):
-        return expr.__class__(self.rec(expr.child, *args, **kwargs))
+        return expr.__class__(
+                self.rec(expr.child, *args, **kwargs),
+                **expr.get_extra_properties())
 
 
 
diff --git a/src/primitives.py b/src/primitives.py
index 14b066fabb321f0c4f3c8e5a3961995a35b34613..fe1c2b3f9846303bf24d6eee493c67ea35b21c8e 100644
--- a/src/primitives.py
+++ b/src/primitives.py
@@ -548,6 +548,9 @@ class CommonSubexpression(Expression):
         return (other.__class__ == self.__class__
                 and other.child == self.child)
 
+    def get_extra_properties(self):
+        return {}
+
     def get_mapper_method(self, mapper): 
         return mapper.map_common_subexpression