diff --git a/product/ERP5SyncML/Conduit/ERP5Conduit.py b/product/ERP5SyncML/Conduit/ERP5Conduit.py
index 8e004f000ca1203d33fbdb0af80bdc57dadbf6a0..6363b7fdec71a1abb95a2475646370d181091153 100644
--- a/product/ERP5SyncML/Conduit/ERP5Conduit.py
+++ b/product/ERP5SyncML/Conduit/ERP5Conduit.py
@@ -792,7 +792,7 @@ class ERP5Conduit(XMLSyncUtilsMixin):
   security.declareProtected(Permissions.AccessContentsInformation,'getElementFromXupdate')
   def getElementFromXupdate(self, xml):
     """
-    from a xupdate:element returns the element as xml
+    return a fragment node with applied xupdate
     """
     if xml.xpath('name()') in self.XUPDATE_ELEMENT:
       new_node = Element(xml.attrib.get('name'), nsmap=xml.nsmap)
diff --git a/product/ERP5SyncML/Conduit/ERP5DocumentConduit.py b/product/ERP5SyncML/Conduit/ERP5DocumentConduit.py
index 6850ac82e84dd193993dff4253607b5f1ca2f341..05f1282274336b607586b421e3b2ec379fda3530 100644
--- a/product/ERP5SyncML/Conduit/ERP5DocumentConduit.py
+++ b/product/ERP5SyncML/Conduit/ERP5DocumentConduit.py
@@ -127,12 +127,12 @@ class ERP5DocumentConduit(ERP5Conduit):
               for element in self.getXupdateElementList(subnode):
                 name_element = element.attrib.get('name', None)
                 if name_element:
+                  attrib_dict = {}
                   for sub_element in element:
                     if sub_element.xpath('name()') in 'xupdate:attribute':
-                      name_attribute = sub_element.attrib.get('name')
-                      value_attribute = sub_element.text
+                      attrib_dict[sub_element.attrib.get('name')] = sub_element.text
                   block = etree.SubElement(xml, name_element)
-                  block.set(name_attribute, value_attribute)
+                  block.attrib.update(attrib_dict)
                   #change structure in xupdate because is bad formed
                   value = etree.tostring(element).split('</')[1].split('>')[1]
                   block.text = value