diff --git a/product/ERP5Form/MultiRelationField.py b/product/ERP5Form/MultiRelationField.py
index 3dcf26378a6d8e81fac27c0b2278a0e08755f023..e230f2694605983e8b93884f4f956130ceca977b 100644
--- a/product/ERP5Form/MultiRelationField.py
+++ b/product/ERP5Form/MultiRelationField.py
@@ -62,9 +62,10 @@ class MultiRelationStringFieldWidget(Widget.LinesTextAreaWidget,
   local_property_names = ['update_method', 'jump_method', 'allow_jump', 
                           'base_category', 'portal_type', 'allow_creation', 
                           'container_getter_id', 'catalog_index',
-                          'relation_setter_id', 'relation_form_id', 'columns', 'sort',
-                          'parameter_list','list_method',
-                          'first_item', 'items', 'size', 'extra_item',
+                          'relation_setter_id', 'relation_form_id', 'columns', 
+                          'sort', 'parameter_list','list_method', 
+                          'first_item', 'items', 'proxy_listbox_ids', 
+                          'size', 'extra_item',
                           ]
 
   property_names = Widget.LinesTextAreaWidget.property_names + \
@@ -180,6 +181,12 @@ class MultiRelationStringFieldWidget(Widget.LinesTextAreaWidget,
                                default='',
                                required=0)
 
+  proxy_listbox_ids = fields.ListTextAreaField('proxy_listbox_ids',
+                               title='Proxy Listbox IDs',
+                               description=('A list of listbox that can be used as proxy'),
+                               default='',
+                               required=0)
+
   # delete double in order to keep a usable ZMI...
   # XXX need to keep order !
   #property_names = dict([(i,0) for i in property_names]).keys() 
diff --git a/product/ERP5Form/SelectionTool.py b/product/ERP5Form/SelectionTool.py
index 086e9e081ee2744fc9d6acd46ba50f361d01b1bd..2577766b28d099d501ab1e6be6913e79d564376f 100644
--- a/product/ERP5Form/SelectionTool.py
+++ b/product/ERP5Form/SelectionTool.py
@@ -1072,7 +1072,8 @@ class SelectionTool( BaseTool, UniqueObject, SimpleItem ):
         # Field found
         field_key = field.generate_field_key()
         field_value = REQUEST.form[field_key]
-        dialog_id = field.get_value('relation_form_id') or 'Base_viewRelatedObjectList'
+        dialog_id = field.get_value('relation_form_id') or \
+                                                   'Base_viewRelatedObjectList'
         redirect_form = getattr(o, dialog_id)
         # XXX Hardcoded listbox field
         selection_name = redirect_form.listbox.get_value('selection_name')
@@ -1108,6 +1109,8 @@ class SelectionTool( BaseTool, UniqueObject, SimpleItem ):
             field_value = ''
           if len(field_value) == 1:
             field_value = field_value[0]
+          if len(field_value) > 1 and isinstance(field_value, type([])):
+            field_value = ' OR '.join(field_value)
           REQUEST.form[field_key] = field_value
           portal_status_message = Message(
                           domain='erp5_ui',
@@ -1143,7 +1146,15 @@ class SelectionTool( BaseTool, UniqueObject, SimpleItem ):
         kw['portal_status_message'] = portal_status_message
         kw['saved_form_data'] = saved_form_data
 
-         # Empty the selection (uid)
+        proxy_listbox_ids = field.get_value('proxy_listbox_ids')
+        REQUEST.set('proxy_listbox_ids', proxy_listbox_ids)
+        if len(proxy_listbox_ids) > 0:
+          REQUEST.set('proxy_listbox_id', proxy_listbox_ids[0][0])
+        else:
+          REQUEST.set('proxy_listbox_id', \
+                       "Base_viewRelatedObjectListBase/listbox")
+
+        # Empty the selection (uid)
         REQUEST.form = kw # New request form
         # Define new HTTP_REFERER
         REQUEST.HTTP_REFERER = '%s/%s' % (o.absolute_url(),