submitted  as enhancement to
https://bugzilla.novell.com/show_bug.cgi?id=605407
Index: simias-1.8.3.10200.stable/src/core/Sync/SyncClient.cs
===================================================================
--- simias-1.8.3.10200.stable.orig/src/core/Sync/SyncClient.cs	2010-07-19 12:37:44.255199987 -0400
+++ simias-1.8.3.10200.stable/src/core/Sync/SyncClient.cs	2010-07-19 12:37:59.565196913 -0400
@@ -2957,7 +2957,7 @@ namespace Simias.Sync
 		Hashtable		nodesFromServerDownload;
 		Hashtable		nodesToServer;
         Hashtable nodesFromServerMerge;
-        Hashtable nodesFromServer;
+//        Hashtable nodesFromServer;
 
         Access.Rights rights;
 		bool			sparseReplica = false;
@@ -3149,7 +3149,7 @@ namespace Simias.Sync
         {
             nodesFromServerMerge.Remove(nodeID);
             nodesFromServerDownload.Remove(nodeID);
-            nodesFromServer.Remove(nodeID);
+//            nodesFromServer.Remove(nodeID);
         }
 
 		/// <summary>
@@ -3163,7 +3163,7 @@ namespace Simias.Sync
             else
                 nodesFromServerDownload.Remove(nodeID);
 
-			nodesFromServer.Remove(nodeID);
+//			nodesFromServer.Remove(nodeID);
 		}
 
 		/// <summary>
@@ -3184,10 +3184,9 @@ namespace Simias.Sync
         private string[] FromServer(SyncNodeType oType, bool merge)
         {
             if (merge)
-                nodesFromServer = nodesFromServerMerge;
+                return FromServer(oType, nodesFromServerMerge);
             else
-                nodesFromServer = nodesFromServerDownload;
-            return FromServer(oType);
+				return FromServer(oType, nodesFromServerDownload);
         }
 
 		/// <summary>
@@ -3195,7 +3194,7 @@ namespace Simias.Sync
 		/// </summary>
 		/// <param name="oType">The Type of objects to return.</param>
 		/// <returns></returns>
-		private string[] FromServer(SyncNodeType oType)
+		private string[] FromServer(SyncNodeType oType, Hashtable nodesFromServer)
 		{
 			ArrayList na = new ArrayList();
 			bool haveCollection = false;