diff --git a/product/ERP5/ExplanationCache.py b/product/ERP5/ExplanationCache.py
index 3f220d86e552ef1a4b4795fbf96a4d9d0fdfb662..21a1db3e0feed9bf1105dc8d437db38cad45aa7b 100644
--- a/product/ERP5/ExplanationCache.py
+++ b/product/ERP5/ExplanationCache.py
@@ -116,9 +116,7 @@ class ExplanationCache:
       simulation_movement_id = simulation_movement.getId()
       insert_movement = True
       for path_id in container_path:
-        if local_path_dict.get(path_id, None) is None:
-          local_path_dict[path_id] = dict()
-        local_path_dict = local_path_dict[path_id]
+        local_path_dict = local_path_dict.setdefault(path_id, {})
         if type(local_path_dict) is not types.DictType:
           # A movement was already inserted
           insert_movement = False
@@ -300,4 +298,4 @@ def _getUnionBusinessProcess(explanation):
   which are involved in the simulation trees related to explanation
   """
   explanation_cache = _getExplanationCache(explanation)
-  return explanation_cache.getUnionBusinessProcess()
\ No newline at end of file
+  return explanation_cache.getUnionBusinessProcess()