         presentViewController(UINavigationController.init(rootViewController: languagesVC), animated: true, completion: nil)
     }
 
-    @objc func languagesController(controller: WMFPreferredLanguagesViewController!, didUpdatePreferredLanguages languages: [MWKLanguageLink]!) {
-        updateLanguageBarLanguageButtons()
+    func languagesController(controller: WMFPreferredLanguagesViewController!, didUpdatePreferredLanguages languages: [MWKLanguageLink]!) {
+        // Reminder: nothing needs to be updated here because it happens in view will/did appear.
+    }
+    
+    func languagesController(controller: WMFLanguagesViewController!, didSelectLanguage language: MWKLanguageLink!) {
+        currentlySelectedSearchLanguage = language
+        controller.dismissViewControllerAnimated(true, completion: nil)
     }
 }


    private(set) var currentlySelectedSearchLanguage: MWKLanguageLink? {
        get {
            if let siteURL = NSUserDefaults.wmf_userDefaults().wmf_currentSearchLanguageDomain(), let selectedLanguage = MWKLanguageLinkController.sharedInstance().languageForSiteURL(siteURL) {
                return selectedLanguage
            }else{
                if let appLang:MWKLanguageLink? = MWKLanguageLinkController.sharedInstance().appLanguage {

    func searchLanguagesBarViewController(controller: WMFSearchLanguagesBarViewController, didChangeCurrentlySelectedSearchLanguage language: MWKLanguageLink)
}

class WMFSearchLanguagesBarViewController: UIViewController, WMFPreferredLanguagesViewControllerDelegate, WMFLanguagesViewControllerDelegate {
    weak var delegate: WMFSearchLanguagesBarViewControllerDelegate?
    
    @IBOutlet private var languageButtons: [UIButton] = []
    @IBOutlet private var otherLanguagesButton: UIButton?
    @IBOutlet private var heightConstraint: NSLayoutConstraint?
    
    private var hidden: Bool = false {
        didSet {
            if(hidden){
