                             //print("List \(readingList.name) has remote entries: \(remoteEntries)")
                             for entry in remoteEntries {
                                 remoteEntriesToCreateLocally[entry.id] = (entry, readingList)
+                                if let date = DateFormatter.wmf_iso8601().date(from: entry.updated),
+                                    date.compare(sinceDate) == .orderedDescending {
+                                    sinceDate = date
+                                }
                             }
                             for localEntry in localEntries {
                                 guard !localEntry.isDeletedLocally else {

    }
}

fileprivate class ReadingListsUpdateOperation: ReadingListsOperation {
    override func execute() {
        DispatchQueue.main.async {
            self.dataStore.performBackgroundCoreDataOperation(onATemporaryContext: { (moc) in
                guard let since = moc.wmf_stringValue(forKey: "WMFReadingListUpdateKey") else {
                    self.finish()
                    return
                }
                
                self.apiController.updatedListsAndEntries(since: since, completion: { (updatedLists, updatedEntries, error) in
                    print("\(String(describing: updatedLists)) \(String(describing: updatedEntries))")
                    self.finish()
                })
            })
        }

                            moc.delete(entry)
                        }
                        
                        if sinceDate.compare(Date.distantPast) != .orderedSame {
                            let iso8601String = DateFormatter.wmf_iso8601().string(from: sinceDate)
                            moc.wmf_setValue(iso8601String as NSString, forKey: WMFReadingListUpdateKey)
                        }
                        
                        guard moc.hasChanges else {
                            return
                        }
