diff --git a/product/ERP5SyncML/Conduit/ERP5DocumentConduit.py b/product/ERP5SyncML/Conduit/ERP5DocumentConduit.py
index 6da3333dae77e220201966d7f4cb3d07af909581..0293538957b0ea2efc9aaf2c8d8aa70ff880cc86 100644
--- a/product/ERP5SyncML/Conduit/ERP5DocumentConduit.py
+++ b/product/ERP5SyncML/Conduit/ERP5DocumentConduit.py
@@ -29,130 +29,17 @@
 
 from Products.ERP5SyncML.Conduit.ERP5Conduit import ERP5Conduit
 from AccessControl import ClassSecurityInfo
-from Products.ERP5Type import Permissions
-from Products.ERP5SyncML.SyncCode import SyncCode
-from ERP5Diff import ERP5Diff
-import re
-from lxml import etree
-parser = etree.XMLParser(remove_blank_text=True)
 
 # Declarative security
 security = ClassSecurityInfo()
 
 class ERP5DocumentConduit(ERP5Conduit):
   """
-  ERP5DocumentConduit provides two methods who permit to have the GID
-  The Gid is composed by the title : "Reference-Version-Language"
-  this class is made for unit test
+  ERP5DocumentConduit specialise generic Conduit
+  to produce adhoc GID.
+  The GID is composed by the concatenation of "reference-version-language"
   """
 
-  security.declareProtected(Permissions.ModifyPortalContent, 'applyXupdate')
-  def applyXupdate(self, object=None, xupdate=None, conduit=None, force=0,
-                   simulate=0, reset=0, **kw):
-    """
-    Parse the xupdate and then it will call the conduit
-    """
-    conflict_list = []
-    if isinstance(xupdate, (str, unicode)):
-      xupdate = etree.XML(xupdate, parser=parser)
-    xupdate = self.manageDataModification(xml_xupdate=xupdate,\
-                   previous_xml=kw['previous_xml'], object=object,
-                   simulate=simulate, reset=reset)
-    for subnode in xupdate:
-      sub_xupdate = self.getSubObjectXupdate(subnode)
-      if subnode.xpath('name()') in self.XUPDATE_INSERT_OR_ADD:
-        conflict_list += conduit.addNode(xml=sub_xupdate, object=object,
-                                         force=force, simulate=simulate,
-                                         reset=reset, **kw)['conflict_list']
-      elif subnode.xpath('name()') in self.XUPDATE_DEL:
-        conflict_list += conduit.deleteNode(xml=sub_xupdate, object=object,
-                                            force=force, simulate=simulate,
-                                            reset=reset, **kw)
-      elif subnode.xpath('name()') in self.XUPDATE_UPDATE:
-        conflict_list += conduit.updateNode(xml=sub_xupdate, object=object,
-                                            force=force, simulate=simulate,
-                                            reset=reset, **kw)
-
-    return conflict_list
-
-  security.declareProtected(Permissions.ModifyPortalContent, 'manageDataModification')
-  def manageDataModification(self, xml_xupdate, previous_xml, object,
-      simulate=None, reset=None):
-    data_change = {}
-    if previous_xml is not None:
-      previous_xml = etree.XML(previous_xml, parser)
-    else:
-      previous_xml = etree.XML(object.asXML(), parser)
-    from copy import deepcopy
-    xml_previous = deepcopy(previous_xml)
-    #retrieve new data
-    node_to_remove_list = []
-    for subnode in xml_xupdate:
-      sub_xupdate = self.getSubObjectXupdate(subnode)
-      attribute = sub_xupdate.attrib.get('select', None)
-      if 'block_data' in attribute:
-        #retrieve path for the element and use on previous_xml
-        prop_list = attribute.split('/')
-        prop_id = prop_list[1]
-        path_prop_id = '//' + prop_id
-        if prop_id not in data_change:
-          data_change[prop_id] =  xml_previous.xpath(path_prop_id)[0]
-        xml = data_change[prop_id]
-        request = prop_list[-1]
-        if getattr(ERP5Diff, '__version__', 0.0) <= 0.2:
-          #Old ERP5Diff, xpath position start from 0, so add +1 to be compliant
-          request = re.sub('(\d+)', lambda match:str(int(match.group(0))+1), request)
-        if subnode.xpath('name()') in self.XUPDATE_DEL:
-          node_to_remove_list.extend(xml.xpath(request))
-          xml_xupdate.remove(subnode)
-        elif subnode.xpath('name()') in self.XUPDATE_UPDATE:
-          #retrieve element in previous_xml
-          element = xml.xpath(request)[0]
-          element.text = subnode.text
-          xml_xupdate.remove(subnode)
-      elif subnode.xpath('name()') in self.XUPDATE_INSERT_OR_ADD:
-        if self.getSubObjectDepth(subnode[0]) == 0:
-          #check element have not sub object
-          attribute = subnode.attrib.get('select', None)
-          if 'block_data' in attribute:
-            prop_id = attribute.split('/')[2]
-            if prop_id in self.data_type_tag_list:
-              path_prop_id = '//' + prop_id
-              if prop_id not in data_change:
-                data_change[prop_id] = xml_previous.xpath(path_prop_id)[0]
-              xml = data_change[prop_id]
-              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':
-                      attrib_dict[sub_element.attrib.get('name')] = sub_element.text
-                  block = etree.SubElement(xml, name_element)
-                  block.attrib.update(attrib_dict)
-                  if len(element):
-                    block.text = element[-1].tail
-              xml_xupdate.remove(subnode)
-
-    #Remove nodes at the end to avoid changing position of elements
-    [node.getparent().remove(node) for node in node_to_remove_list]
-    #apply modification
-    if len(data_change):
-      args = {}
-      for key, node in data_change.iteritems():
-        node.text = None
-        data = self.convertXmlValue(node)
-        args[key] = data
-        args = self.getFormatedArgs(args=args)
-        #XXX manage conflict
-        if args != {} and (not simulate or reset):
-          self.editDocument(object=object, **args)
-          # It is sometimes required to do something after an edit
-          if getattr(object, 'manage_afterEdit', None) is not None:
-            object.manage_afterEdit()
-
-    return xml_xupdate
-
   # Declarative security
   security = ClassSecurityInfo()
   def getGidFromObject(self, object):
@@ -160,11 +47,6 @@ class ERP5DocumentConduit(ERP5Conduit):
     return the Gid generate with the reference, object, language of the object
     """
     return "%s-%s-%s" %\
-      (object.getReference(), object.getVersion(), object.getLanguage())
+             (object.getReference(), object.getVersion(), object.getLanguage())
+
 
-#  def getGidFromXML(self, xml):
-#    """
-#    return the Gid composed of FirstName and LastName generate with a peace of
-#    xml
-#    """
-#    #to be defined