diff --git a/product/ERP5Form/Form.py b/product/ERP5Form/Form.py
index 91a6842e1740fd07ccd195d005af4772c87d34d6..1146c233d56773b628f25f0bd0c69e7f1c73bfdc 100644
--- a/product/ERP5Form/Form.py
+++ b/product/ERP5Form/Form.py
@@ -829,7 +829,7 @@ class ERP5Form(Base, ZMIForm, ZopePageTemplate):
 
           # Find folders which can be surcharged by this skin folder
           if '_' in folder_id:
-            surcharged_folder_id = 'erp5_%s' % folder_id.split('_')[-1]
+            surcharged_folder_id = 'erp5_%s' % folder_id.split('_', 1)[-1]
             if (surcharged_folder_id != folder_id) and \
               (getattr(portal.portal_skins, surcharged_folder_id, None) \
                                                              is not None):
@@ -850,8 +850,8 @@ class ERP5Form(Base, ZMIForm, ZopePageTemplate):
             for i in obj.objectValues():
                 if (i.meta_type=='ERP5 Form' and
                     i.id.startswith('Base_view') and
-                    i.id.endswith('FieldLibrary') and
-                    '_view' in i.getId()):
+                    i.id.endswith('FieldLibrary') and 
+                    '_view' in i.getId()) or (i.id == self.id):
                     form_id = i.getId()
                     form_path = '%s.%s' % (obj.getId(), form_id)
                     field_list = []
@@ -1131,7 +1131,17 @@ class ERP5Form(Base, ZMIForm, ZopePageTemplate):
 
         for field_id in field_dict.keys():
             target = field_dict[field_id]
-            target_form_id, target_field_id = target.split('.')
+            target_list = target.split('.')
+            if len(target_list) == 2:
+              target_form_id, target_field_id = target_list
+            elif len(target_list) == 3:
+              target_field_id = target_list[2]
+              if target_list[1] == self.id:
+                target_form_id = '/'.join(target_list[:2])
+              else:
+                target_form_id = target_list[1]
+            else:
+              raise NotImplementedError, "Not supported path: %s" % target
 
             # keep current group and position.
             group, position = get_group_and_position(field_id)
diff --git a/product/ERP5Form/dtml/formProxify.dtml b/product/ERP5Form/dtml/formProxify.dtml
index fc00dc8facd1fc8625ba0b8681f5b938747e13aa..c9bd7bd860274f5ca8b9b79d452e25b0f3162c99 100644
--- a/product/ERP5Form/dtml/formProxify.dtml
+++ b/product/ERP5Form/dtml/formProxify.dtml
@@ -49,7 +49,7 @@ Keep empty values <input type="checkbox" name="keep_empty_value"> <br/>
           field_id="field_object.getId()"
           field_type="item['field_type']"
           proxy_mark="item['proxy_flag'] and ' (Proxy)' or ''">
-<option value="<dtml-var "'%s.%s' % (form_id, field_id)">">
+<option value="<dtml-var "'%s.%s' % (form_path, field_id)">">
 <dtml-var "'%s%s' % (field_id, proxy_mark)">
 </option>
 </dtml-let>