diff --git a/product/ERP5/Tool/DomainTool.py b/product/ERP5/Tool/DomainTool.py
index 812137824468e55a91c14e3ee1bb5684d22be554..1d5b827fd6aeb3171c16fc2dd06f853a2cc53caf 100755
--- a/product/ERP5/Tool/DomainTool.py
+++ b/product/ERP5/Tool/DomainTool.py
@@ -86,7 +86,7 @@ class DomainTool(BaseTool):
       # Search the columns of the predicate table
       for column in portal_catalog.getColumnIds():
         if column.startswith('predicate.'):
-          column_list.append(column.split('.')[1])
+          column_list.append(column.split('.')[1])          
       for column in column_list:
         if column not in checked_column_list:
           range_property = 0
@@ -223,4 +223,30 @@ class DomainTool(BaseTool):
         mapped_value = mapped_value.asContext(**mapped_value_property_dict)
       return mapped_value
 
+
+
+    def getChildDomainValueList(self, parent,**kw):
+      """
+      Return child domain objects already present adn thois generetaded dynamically
+      """
+      # get static domain
+      object_list = list(parent.objectValues())
+      # get dynamic object genretade from script
+      object_list.extend(parent.getDomainGeneratorList())
+      return object_list
+
+    def getDomainByPath(self, path):
+      """
+      Return the domain object for a given path
+      """
+      domain = None
+      for subdomain in path.split('/'):
+        if domain is None:
+          domain = self[subdomain]        
+        domains = self.getChildDomainValueList(domain)
+        for d in domains:
+          if d.getId() == subdomain:
+            domain = d
+      return domain
+  
 InitializeClass(DomainTool)