         sites += suggestedSites as [Site]
     }
 
-    // Flags the next set of sites to do a replace, not a merge.
-    func invalidateSites() {
-        sitesInvalidated = true
-    }
-
     subscript(index: Int) -> Site? {
         if count() == 0 {
             return nil

            deleteTileForSuggestedSite(site as! SuggestedSite)
        }

        profile.history.removeSiteFromTopSites(site).uponQueue(dispatch_get_main_queue()) { _ in
            // Remove the site from the current data source. Don't requery yet
            // since a Sync or location change may have changed the data under us.
            self.dataSource.sites = self.dataSource.sites.filter { $0 !== site }

    private func setHistorySites(var historySites: [Site]) {
        // Sites are invalidated and we have a new data set, so do a replace.
        if (sitesInvalidated) {
            self.sites = []
        }

        // We requery every time we do a deletion. If the query contains a top site that's
