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

            self.updateSyncItem(item!, object: object, status: status)
            
            return count + 1
        }
    }


    // Map local objects to sync items
    func addLocalObjectsToSyncQueue<T: SequenceType where T.Generator.Element: NSManagedObject>(set: T?, status: JLCloudKitItemStatus) -> Int {
        if set == nil { return 0 }

        return reduce(set!, 0) { (count, object) in
            println("\( object.objectID) \( object.objectID.temporaryID ) ")
            var item = self.fetchSyncItem(object.objectID)
            if item == nil {
                item = JLCloudKitItem(managedObjectContext: self.backingContext)
