                         finalCKRecords.append(self.syncConflictResolutionBlock!(clientRecord: clientServerCKRecord.clientRecord,serverRecord: clientServerCKRecord.serverRecord))
                     }
                 }
-                else if self.syncConflictPolicy == CKSStoresSyncConflictPolicy.ClientRecordWins
+                else if (self.syncConflictPolicy == CKSStoresSyncConflictPolicy.ClientRecordWins || (self.syncConflictPolicy == CKSStoresSyncConflictPolicy.GreaterModifiedDateWins && clientServerCKRecord.clientRecord.modificationDate.compare(clientServerCKRecord.serverRecord.modificationDate) == NSComparisonResult.OrderedDescending))
                 {
                     var keys = clientServerCKRecord.serverRecord.allKeys()
-                    var values = clientServerCKRecord.serverRecord.dictionaryWithValuesForKeys(keys)
+                    var values = clientServerCKRecord.clientRecord.dictionaryWithValuesForKeys(keys)
                     clientServerCKRecord.serverRecord.setValuesForKeysWithDictionary(values)
                 }
-                else if self.syncConflictPolicy == CKSStoresSyncConflictPolicy.GreaterModifiedDateWins
-                {
-                    if clientServerCKRecord.clientRecord.modificationDate.compare(clientServerCKRecord.serverRecord.modificationDate) == NSComparisonResult.OrderedAscending
-                    {
-                        
-                    }
-                    else if clientServerCKRecord.clientRecord.modificationDate.compare(clientServerCKRecord.serverRecord.modificationDate) == NSComparisonResult.OrderedDescending
-                    {
-                        
-                    }
-                    else
-                    {
-                        
-                    }
-                }
-                else if self.syncConflictPolicy == CKSStoresSyncConflictPolicy.ServerRecordWins
-                {
-                    
-                }
-            }
-            
-        }
-        
-        if savedRecords != nil
+             
+                finalCKRecords.append(clientServerCKRecord.serverRecord)
+            }
+        }
+        
+        if savedRecords != nil && conflictedRecords.count == 0
         {
             var savedRecordsWithIDStrings = savedRecords!.map({(object)->String in
                 

                    {
                        conflictedRecordsWithStringRecordIDs[ckRecordID.recordName] = (conflictedRecordsWithStringRecordIDs[ckRecordID.recordName]!.clientRecord,ckRecord)
                    }
                }
            })
            self.operationQueue?.addOperation(ckFetchRecordsOperation)

            }
            
        })
        
        self.operationQueue?.addOperation(ckModifyRecordsOperation)
        self.operationQueue?.waitUntilAllOperationsAreFinished()
