diff --git a/product/ERP5Form/MultiRelationField.py b/product/ERP5Form/MultiRelationField.py
index 3cac104405e8181454ec73d0f3c78d49d4f279b1..0ca8dc1d440b65c1bd6e7ad0475f4a0f01599b94 100755
--- a/product/ERP5Form/MultiRelationField.py
+++ b/product/ERP5Form/MultiRelationField.py
@@ -278,14 +278,16 @@ class MultiRelationEditor:
           relation_setter((), portal_type=self.portal_type)
           relation_setter( relation_uid_list , portal_type=self.portal_type)         
         else:
-          if relation_uid_list == []:
-            # XXX we could call a generic method which create the setter method name
-            set_method_name = '_set'+convertToUpperCase(self.base_category)
-            getattr(o, set_method_name)( None )
-          else:
-            # XXX we could call a generic method which create the setter method name
-            set_method_name = '_set'+convertToUpperCase(self.base_category)+'ValueList'
-            getattr(o, set_method_name)( relation_object_list )
+#          if relation_uid_list == []:
+#            # XXX we could call a generic method which create the setter method name
+#            set_method_name = '_set'+convertToUpperCase(self.base_category)
+#            getattr(o, set_method_name)( None )
+#          else:
+#            # XXX we could call a generic method which create the setter method name
+#            set_method_name = '_set'+convertToUpperCase(self.base_category)+'ValueList'
+#            getattr(o, set_method_name)( relation_object_list )
+          o._setValueUids(self.base_category, (), portal_type=self.portal_type)
+          o._setValueUids(self.base_category, relation_uid_list, portal_type=self.portal_type)
 
       else:
         # Nothing to do
diff --git a/product/ERP5Form/RelationField.py b/product/ERP5Form/RelationField.py
index 44dd408637498310edb21a03cfffd7e4a73532b7..76ff6768833bf5bd1cd1fd2fb790f55b058c812a 100755
--- a/product/ERP5Form/RelationField.py
+++ b/product/ERP5Form/RelationField.py
@@ -263,10 +263,12 @@ class RelationEditor:
           relation_setter((), portal_type=self.portal_type)
           relation_setter((int(self.uid),), portal_type=self.portal_type)         
         else:
-          # XXX we could call a generic method which create the setter method name
-          set_method_name = '_set'+convertToUpperCase(self.base_category)+'Value'
-          object = o.portal_catalog.getObject( self.uid ) 
-          getattr(o, set_method_name)( object )
+#          # XXX we could call a generic method which create the setter method name
+#          set_method_name = '_set'+convertToUpperCase(self.base_category)+'Value'
+#          object = o.portal_catalog.getObject( self.uid ) 
+#          getattr(o, set_method_name)( object )
+            o._setValueUids(self.base_category, (), portal_type=self.portal_type)
+            o._setValueUids(self.base_category, (int(self.uid),), portal_type=self.portal_type)
 
       else:
         if self.value == '':
@@ -275,9 +277,10 @@ class RelationEditor:
             relation_setter = getattr(o, self.relation_setter_id)
             relation_setter((), portal_type=self.portal_type)
           else:
-            # XXX we could call a generic method which create the setter method name
-            set_method_name = '_set'+convertToUpperCase(self.base_category)
-            getattr(o, set_method_name)( None )
+#            # XXX we could call a generic method which create the setter method name
+#            set_method_name = '_set'+convertToUpperCase(self.base_category)
+#            getattr(o, set_method_name)( None )
+            o._setValueUids(self.base_category, (), portal_type=self.portal_type)
 
 
 allow_class(RelationEditor)