diff --git a/product/ERP5/Tool/SimulationTool.py b/product/ERP5/Tool/SimulationTool.py
index 1cbc82afbb20be42e143f7f6ae33d86a62f79fbb..6426f07617a15f4b61de82dfa2d9b1c70518c120 100644
--- a/product/ERP5/Tool/SimulationTool.py
+++ b/product/ERP5/Tool/SimulationTool.py
@@ -358,6 +358,9 @@ class SimulationTool(BaseTool):
         group_by = new_kw.pop('group_by', [])
         if len(group_by):
           new_kw['group_by_expression'] = ', '.join(['%s.%s' % (table, x) for x in group_by])
+        column_value_dict = new_kw.pop('column_value_dict', {})
+        for key, value in column_value_dict.iteritems():
+          new_kw['%s.%s' % (table, key)] = value
         sql_kw.update(self.portal_catalog.buildSQLQuery(**new_kw))
         return sql_kw
 
@@ -449,48 +452,51 @@ class SimulationTool(BaseTool):
           operator='AND'))
 
       # Some columns exists on multiple tables, we have to clear ambiguities
+      column_value_dict = {}
       if resource_uid is not None :
-        new_kw[table + '.resource_uid'] = resource_uid
+        column_value_dict['resource_uid'] = resource_uid
       if section_uid is not None :
-        new_kw[table + '.section_uid'] = section_uid
+        column_value_dict['section_uid'] = section_uid
         sql_kw['section_filtered'] = 1
       if node_uid is not None :
-        new_kw[table + '.node_uid'] = node_uid
+        column_value_dict['node_uid'] = node_uid
 
       resource_uid_list = self._generatePropertyUidList(resource)
       if resource_uid_list:
-        new_kw[table + '.resource_uid'] = resource_uid_list
+        column_value_dict['resource_uid'] = resource_uid_list
 
       item_uid_list = self._generatePropertyUidList(item)
       if item_uid_list:
-        new_kw[table + '.aggregate_uid'] = item_uid_list
+        column_value_dict['aggregate_uid'] = item_uid_list
 
       node_uid_list = self._generatePropertyUidList(node)
       if node_uid_list:
-        new_kw[table + '.node_uid'] = node_uid_list
+        column_value_dict['node_uid'] = node_uid_list
 
       payment_uid_list = self._generatePropertyUidList(payment)
       if payment_uid_list:
-        new_kw[table + '.payment_uid'] = payment_uid_list
+        column_value_dict['payment_uid'] = payment_uid_list
 
       section_uid_list = self._generatePropertyUidList(section)
       if section_uid_list:
-        new_kw[table + '.section_uid'] = section_uid_list
+        column_value_dict['section_uid'] = section_uid_list
         sql_kw['section_filtered'] = 1
 
       mirror_section_uid_list = self._generatePropertyUidList(mirror_section)
       if mirror_section_uid_list:
-        new_kw[table + '.mirror_section_uid'] = mirror_section_uid_list
+        column_value_dict['mirror_section_uid'] = mirror_section_uid_list
 
       variation_text_list = self._generatePropertyUidList(variation_text,
                                                           as_text=1)
       if variation_text_list:
-        new_kw[table + '.variation_text'] = variation_text_list
+        column_value_dict['variation_text'] = variation_text_list
 
       sub_variation_text_list = self._generatePropertyUidList(
                                               sub_variation_text, as_text=1)
       if sub_variation_text_list:
-        new_kw[table + '.sub_variation_text'] = sub_variation_text_list
+        column_value_dict['sub_variation_text'] = sub_variation_text_list
+
+      new_kw['column_value_dict'] = column_value_dict
 
       # category membership
       resource_category_uid_list = self._generatePropertyUidList(