diff --git a/product/ERP5Legacy/Document/Rule.py b/product/ERP5Legacy/Document/Rule.py
index 3708a2d7c07e90a0829a374b0ed0234d8b5d2e82..d080d63abb75a0cceb3847f7120451d83bb1e3bb 100644
--- a/product/ERP5Legacy/Document/Rule.py
+++ b/product/ERP5Legacy/Document/Rule.py
@@ -591,7 +591,12 @@ class Rule(Predicate, XMLObject):
 
     default_property_list = self.getExpandablePropertyList()
     for prop in default_property_list:
-      property_dict[prop] = movement.getProperty(prop)
+      # getProprety('title') returns the ID if title is not set, but we
+      # don't want to propagate such a value in simulation movements.
+      if prop in ('title',) and not movement.hasProperty(prop):
+        property_dict[prop] = None
+      else:
+        property_dict[prop] = movement.getProperty(prop)
 
     # rule specific
     property_dict.update(**self._getExpandablePropertyUpdateDict(applied_rule,