diff --git a/product/ERP5SyncML/Subscription.py b/product/ERP5SyncML/Subscription.py
index 9c00259a16d9ad683dae95994b920d410d40cd75..e9b494b1ec76179489cd2acb4a289770b05460b1 100644
--- a/product/ERP5SyncML/Subscription.py
+++ b/product/ERP5SyncML/Subscription.py
@@ -777,10 +777,10 @@ class Subscription(Folder, SyncCode):
     # XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
     code = self.SLOW_SYNC
     if len(self.objectValues()) > 0:
-      code = self.TWO_WAY
+      code = self.getAlertCode()
     if default is not None:
       code = default
-    # LOG('Subscription',0,'getSynchronizationType: %s' % code)
+    #LOG('Subscription',0,'getSynchronizationType: %s' % code)
     return code
 
   def setXMLMapping(self, value):
@@ -912,21 +912,23 @@ class Subscription(Folder, SyncCode):
     """
     self.publication_url = publication_url
 
-  def getXMLMapping(self):
+  def getXMLMapping(self, force=0):
     """
       return the xml mapping
     """
-    xml_mapping = getattr(self,'xml_mapping','asXML')
+    if self.isOneWayFromServer() and force == 0:
+      return None
+    xml_mapping = getattr(self, 'xml_mapping', None)
     return xml_mapping
 
-  def getXMLFromObject(self,object):
+  def getXMLFromObject(self, object):
     """
       return the xml mapping
     """
     xml_mapping = self.getXMLMapping()
     xml = ''
     if xml_mapping is not None:
-      func = getattr(object,xml_mapping,None)
+      func = getattr(object, xml_mapping, None)
       if func is not None:
         xml = func()
     return xml
@@ -936,7 +938,7 @@ class Subscription(Folder, SyncCode):
     This set the method name wich allows to find a gid
     from any object
     """
-    if method in (None,'','None'):
+    if method in (None, '', 'None'):
       method = 'getId'
     self.gid_generator = method