         }
         
         // deleted
-        removeFromSyncQueue(deleteRecordIDs.map { $0.recordName! })
+        let deletedRecordIDStrings = deleteRecordIDs.map { $0.recordName! }
+        removeLocalObject(deletedRecordIDStrings)
+        removeFromSyncQueue(deletedRecordIDStrings)
         
         saveBackingContext()
         saveContext(context, name: "Content")

        }
        if object == nil {
            object = NSManagedObject(entity: NSEntityDescription.entityForName(metaEntityName, inManagedObjectContext: backingContext)!, insertIntoManagedObjectContext: backingContext)
        }
        if token != nil {
            let data = NSKeyedArchiver.archivedDataWithRootObject(token!)

            self.updateSyncItem(item!, object: object, status: status)
            
            return count + 1
        }
    }
    
    func removeLocalObject(recordIDs: [String]) {
        let objects = self.fetchLocalObjects(recordIDs)
        for (_, object) in objects {
            self.context.deleteObject(object)
        }
    }

