diff --git a/product/ERP5Type/Accessor/Value.py b/product/ERP5Type/Accessor/Value.py
index 336cb65a077187613fb9d84bba2b2998b553ef4b..bee30945c829bcc1889d3e54e522f71f931d9c8d 100755
--- a/product/ERP5Type/Accessor/Value.py
+++ b/product/ERP5Type/Accessor/Value.py
@@ -304,6 +304,33 @@ class DefaultTitleOrIdGetter(Method):
 
 TitleOrIdGetter = DefaultTitleOrIdGetter
 
+class DefaultLogicalPathGetter(Method):
+    """
+      Gets a default logical path object
+    """
+    _need__name__=1
+
+    # Generic Definition of Method Object
+    # This is required to call the method form the Web
+    func_code = func_code()
+    func_code.co_varnames = ('self',)
+    func_code.co_argcount = 1
+    func_defaults = ()
+
+    def __init__(self, id, key):
+      self._id = id
+      self.__name__ = id
+      self._key = key
+
+    def __call__(self, instance, *args, **kw):
+      value = instance._getDefaultAcquiredValue(self._key, spec=kw.get('spec',()))
+      if value is not None:
+        return value.getLogicalPath()
+      else:
+        return None
+
+LogicalPathGetter = DefaultLogicalPathGetter
+
 class IdListGetter(Method):
     """
       Gets a list of reference objects uid
@@ -331,6 +358,33 @@ class IdListGetter(Method):
 
 IdSetGetter = IdListGetter # Error XXX
 
+class LogicalPathListGetter(Method):
+    """
+      Gets a list of logical path
+    """
+    _need__name__=1
+
+    # Generic Definition of Method Object
+    # This is required to call the method form the Web
+    func_code = func_code()
+    func_code.co_varnames = ('self',)
+    func_code.co_argcount = 1
+    func_defaults = ()
+
+    def __init__(self, id, key):
+      self._id = id
+      self.__name__ = id
+      self._key = key
+
+    def __call__(self, instance, *args, **kw):
+      return map(lambda x:x.getLogicalPath(), instance._getAcquiredValueList(self._key,
+                                                 spec=kw.get('spec',()),
+                                                 filter=kw.get('filter', None),
+                                                 portal_type=kw.get('portal_type',()))
+                                                  )
+
+LogicalPathSetGetter = LogicalPathListGetter # Error XXX
+
 class DefaultPropertyGetter(Method):
     """
       Gets a default reference object
diff --git a/product/ERP5Type/Utils.py b/product/ERP5Type/Utils.py
index 07ccd71b8142db1f14a8d579893756f65aedb177..9b84835bd37957e1d9e757f7f9982f5850b765a3 100755
--- a/product/ERP5Type/Utils.py
+++ b/product/ERP5Type/Utils.py
@@ -1984,6 +1984,24 @@ def createValueAccessors(klass, id):
   if not hasattr(klass, accessor_name):
     setattr(klass, accessor_name, accessor)
 
+  accessor_name = 'get' + UpperCase(id) + 'LogicalPathList'
+  accessor = Value.LogicalPathListGetter(accessor_name, id)
+  if not hasattr(klass, accessor_name):
+    setattr(klass, accessor_name, accessor)
+    klass.security.declareProtected(Permissions.AccessContentsInformation, accessor_name)
+  accessor_name = '_categoryGet' + UpperCase(id) + 'LogicalPathList'
+  if not hasattr(klass, accessor_name):
+    setattr(klass, accessor_name, accessor)
+
+  accessor_name = 'get' + UpperCase(id) + 'LogicalPathSet'
+  accessor = Value.LogicalPathSetGetter(accessor_name, id)
+  if not hasattr(klass, accessor_name):
+    setattr(klass, accessor_name, accessor)
+    klass.security.declareProtected(Permissions.AccessContentsInformation, accessor_name)
+  accessor_name = '_categoryGet' + UpperCase(id) + 'LogicalPathSet'
+  if not hasattr(klass, accessor_name):
+    setattr(klass, accessor_name, accessor)
+
   accessor_name = 'get' + UpperCase(id) + 'UidList'
   accessor = Value.UidListGetter(accessor_name, id)
   if not hasattr(klass, accessor_name):
@@ -2116,6 +2134,22 @@ def createValueAccessors(klass, id):
   if not hasattr(klass, accessor_name):
     setattr(klass, accessor_name, accessor)
 
+  accessor_name = 'getDefault' + UpperCase(id) + 'LogicalPath'
+  accessor = Value.DefaultLogicalPathGetter(accessor_name, id)
+  if not hasattr(klass, accessor_name):
+    setattr(klass, accessor_name, accessor)
+    klass.security.declareProtected(Permissions.AccessContentsInformation, accessor_name)
+  accessor_name = 'get' + UpperCase(id) + 'LogicalPath'
+  if not hasattr(klass, accessor_name):
+    setattr(klass, accessor_name, accessor)
+    klass.security.declareProtected(Permissions.AccessContentsInformation, accessor_name)
+  accessor_name = '_categoryGetDefault' + UpperCase(id) + 'LogicalPath'
+  if not hasattr(klass, accessor_name):
+    setattr(klass, accessor_name, accessor)
+  accessor_name = '_categoryGet' + UpperCase(id) + 'LogicalPath'
+  if not hasattr(klass, accessor_name):
+    setattr(klass, accessor_name, accessor)
+
   setter_name = 'set' + UpperCase(id) + 'Value'
   setter = Value.Setter(setter_name, id, reindex=1)
   if not hasattr(klass, setter_name):