diff --git a/product/ERP5/Document/Resource.py b/product/ERP5/Document/Resource.py
index c8efafc04dd060edf842b2db3182fd167db1c1d4..b9e5fa58d96d1b571f80cba4b1b2f817b0e9d3c5 100755
--- a/product/ERP5/Document/Resource.py
+++ b/product/ERP5/Document/Resource.py
@@ -85,14 +85,11 @@ class Resource(XMLMatrix, CoreResource, Variated):
         elif type(base_category_list) is type('a'):
           base_category_list = (base_category_list,)
         result = []
+
         for c in base_category_list:
           c_range = self.getCategoryMembershipList(c, base=base)
           if len(c_range) > 0:
             result += list(map(lambda x: (x,x), c_range))
-          else:
-            if root:
-              # XXX - no idea why we should keep this ? JPS
-              result += self.portal_categories.unrestrictedTraverse(c).getBaseItemList(base=base)
         try:
           other_variations = self.searchFolder(portal_type = self.getPortalVariationTypeList())
         except:
@@ -102,12 +99,21 @@ class Resource(XMLMatrix, CoreResource, Variated):
             o = o_brain.getObject()
             for v in o.getVariationBaseCategoryList():
               if base_category_list is () or v in base_category_list:
+                
+                display_value = getattr(o, display_id)
+                if callable( display_value ):
+                  display_value = display_value()
+
                 if base:
-                  result += [('%s/%s' % (v, o.getRelativeUrl()), '%s/%s' % (v, o.getRelativeUrl()))]
+                  # [ ( display, stored value ) ]
+                  result += [('%s/%s' % (v,  display_value ), '%s/%s' % (v, o.getRelativeUrl()))]
                 else:
-                  result += [(o.getRelativeUrl(),o.getRelativeUrl())]
+                  result += [('%s' %  display_value , '%s' %  o.getRelativeUrl())]
+
         return result
 
+
+
     security.declareProtected(Permissions.AccessContentsInformation,
                                            'getVariationRangeCategoryList')
     def getVariationRangeCategoryList(self, base_category_list = (), base=1, root=1,
@@ -115,7 +121,8 @@ class Resource(XMLMatrix, CoreResource, Variated):
         """
           Returns the range of acceptable categories
         """
-        return map(lambda x: x[0], self.getVariationRangeCategoryItemList(base_category_list=base_category_list,
+        # display is on left
+        return map(lambda x: x[1], self.getVariationRangeCategoryItemList(base_category_list=base_category_list,
                                    base=base, root=root, display_id=display_id, current_category=current_category))