     
     func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
         updateSearchSuggestions(withCompletions: searchSuggestionController.searches[3])
+        isWaitingForSearchSuggestionUpdate = true
         NSObject.cancelPreviousPerformRequests(withTarget: self)
         perform(#selector(updateSearchCompletionsFromSearchBarText), with: nil, afterDelay: 0.2)
     }

        let searchResult = MWKSearchResult(articleID: 0, revID: 0, displayTitle: title, wikidataDescription: article.wikidataDescription, extract: article.snippet, thumbnailURL: article.thumbnailURL, index: nil, isDisambiguation: false, isList: false, titleNamespace: nil)
        currentSearch = PlaceSearch(filter: currentSearchFilter, type: .location, sortStyle: .links, string: nil, region: region, localizedDescription: title, searchResult: searchResult)
    }

    func updateSearchCompletionsFromSearchBarText() {
        guard let text = searchBar?.text?.trimmingCharacters(in: NSCharacterSet.whitespacesAndNewlines), text != "" else {
            updateSearchSuggestions(withCompletions: [])
            return
        }
        searchFetcher.fetchArticles(forSearchTerm: text, siteURL: siteURL, resultLimit: 24, failure: { (error) in

                return
            }
            self.updateSearchSuggestions(withCompletions: [])
            self.isWaitingForSearchSuggestionUpdate = false
        }) { (searchResult) in
            guard text == self.searchBar?.text else {
                return
            }
            
            let completions = self.handleCompletion(searchResults: searchResult.results ?? [])
            self.isWaitingForSearchSuggestionUpdate = false
            guard completions.count < 10 else {
                return
            }
