 class CloudKitAcountZoneDelegate: CloudKitZoneDelegate {
 	
 	private typealias UnclaimedWebFeed = (url: URL, name: String?, editedName: String?, homePageURL: String?, webFeedExternalID: String)
-	private var unclaimedWebFeeds = [String: [UnclaimedWebFeed]]()
-	
+	private var newUnclaimedWebFeeds = [String: [UnclaimedWebFeed]]()
+	private var existingUnclaimedWebFeeds = [String: [WebFeed]]()
+
 	private var log = OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "CloudKit")
 
 	weak var account: Account?

			case .insert(_, let externalID, _):
				if let container = account.existingContainer(withExternalID: externalID) {
					container.addWebFeed(webFeed)
				}
			}
		}

			folder?.externalID = record.externalID
		}
		
		guard let folder = folder, let containerExternalID = folder.externalID else { return }
		
		if let newUnclaimedWebFeeds = newUnclaimedWebFeeds[containerExternalID] {
			for newUnclaimedWebFeed in newUnclaimedWebFeeds {
				createWebFeedIfNecessary(url: newUnclaimedWebFeed.url,
										 name: newUnclaimedWebFeed.name,
										 editedName: newUnclaimedWebFeed.editedName,
										 homePageURL: newUnclaimedWebFeed.homePageURL,
										 webFeedExternalID: newUnclaimedWebFeed.webFeedExternalID,
										 container: folder)
			}

			self.newUnclaimedWebFeeds.removeValue(forKey: containerExternalID)
		}
		
		if let existingUnclaimedWebFeeds = existingUnclaimedWebFeeds[containerExternalID] {
			for existingUnclaimedWebFeed in existingUnclaimedWebFeeds {
				folder.addWebFeed(existingUnclaimedWebFeed)
			}
			self.existingUnclaimedWebFeeds.removeValue(forKey: containerExternalID)
		}
	}
	
	func removeContainer(_ externalID: String) {
