diff --git a/product/CMFCategory/CategoryTool.py b/product/CMFCategory/CategoryTool.py
index 9d53eab1cfea896d7fe25b72ad478edf5cb17f37..893572bfc66f99cd2ab3e852eb9f0cdd65f23d5c 100755
--- a/product/CMFCategory/CategoryTool.py
+++ b/product/CMFCategory/CategoryTool.py
@@ -30,7 +30,6 @@
 ERP portal_categories tool.
 """
 
-from copy import deepcopy
 from OFS.Folder import Folder
 from Products.CMFCore.utils import UniqueObject
 from Globals import InitializeClass, DTMLFile
@@ -44,7 +43,7 @@ from Products.CMFCore.PortalFolder import ContentFilter
 from Products.CMFCategory.Renderer import Renderer
 from OFS.Traversable import NotFound
 
-import string, re
+import re
 
 from zLOG import LOG, PROBLEM
 
@@ -1227,10 +1226,12 @@ class CategoryTool( UniqueObject, Folder, Base ):
           self.updateRelatedContent(o, previous_o_category_url, new_o_category_url)
 
     security.declareProtected( Permissions.AccessContentsInformation, 'getRelatedValueList' )
-    def getRelatedValueList(self, context, base_category_list=None, 
-                                       spec=(), filter=None, base=1, **kw):
-      #LOG('getRelatedValueList',0,'base_category_list: %s, filter: %s, kw: %s' %
-      #        (str(base_category_list),str(filter),str(kw)))
+    def getRelatedValueList(self, context, base_category_list=None,
+                           spec=(), filter=None, base=1, **kw):
+      """
+        This methods returns the list of objects related to the context
+        with the given base_category_list.
+      """
       strict_membership = kw.get('strict_membership', kw.get('strict', 0))
       portal_type = kw.get('portal_type')
       
@@ -1247,14 +1248,14 @@ class CategoryTool( UniqueObject, Folder, Base ):
         elif base_category_list is () or base_category_list is None:
           base_category_list = self.getBaseCategoryList()
         category_list = []
-        #LOG('getRelatedValueList',0,'base_category_list: %s' % str(base_category_list))
         for base_category in base_category_list:
           category_list.append("%s/%s" % (base_category, context.getRelativeUrl()))
       
-      brain_result = self.Base_zSearchRelatedObjectsByCategoryList(category_list = category_list,
-                                                                   portal_type = portal_type,
-                                                                   strict_membership = strict_membership)
-
+      brain_result = self.Base_zSearchRelatedObjectsByCategoryList(
+                           category_list = category_list,
+                           portal_type = portal_type,
+                           strict_membership = strict_membership )
+      
       result = []
       for b in brain_result:
         o = b.getObject()
@@ -1265,7 +1266,22 @@ class CategoryTool( UniqueObject, Folder, Base ):
                                   # XXX missing filter and **kw stuff
       #return self.search_category(category_list = category_list, portal_type = spec)
       # future implementation with brains, much more efficient
-
+    
+    security.declareProtected( Permissions.AccessContentsInformation,
+                               'getRelatedPropertyList' )
+    def getRelatedPropertyList(self, context, base_category_list=None,
+                          property_name=None, spec=(), filter=None, base=1, **kw):
+      """
+        This methods returns the list of property_name on  objects
+        related to the context with the given base_category_list.
+      """
+      result = []
+      for o in self.getRelatedValueList(context=context,
+                          base_category_list=base_category_list, spec=spec,
+                          filter=filter, base=base, **kw) :
+        result.append(o.getProperty(property_name, None))
+      return result
+      
     # SQL Expression Building
     security.declareProtected(Permissions.AccessContentsInformation, 'buildSQLSelector')
     def buildSQLSelector(self, category_list, query_table='category'):
@@ -1360,7 +1376,7 @@ class CategoryTool( UniqueObject, Folder, Base ):
       This returns a title list of items belonging to a category
 
       """
-      getCategoryMemberItemList(self, context, base_category = base_category,
+      return self.getCategoryMemberItemList(self, context, base_category = base_category,
                                 spec = spec, filter=filter, portal_type=portal_type, 
                                 strict_membership = strict_membership, strict = strict,
                                 display_id = 'getTitle')