return;
 
        if ((ifsta->flags & (IEEE80211_STA_BSSID_SET |
-                               IEEE80211_STA_AUTO_BSSID_SEL)) &&
+                            IEEE80211_STA_AUTO_BSSID_SEL)) &&
            (ifsta->flags & (IEEE80211_STA_SSID_SET |
-                               IEEE80211_STA_AUTO_SSID_SEL))) {
+                            IEEE80211_STA_AUTO_SSID_SEL))) {
+
+               if (ifsta->state == IEEE80211_STA_MLME_ASSOCIATED)
+                       ieee80211_set_disassoc(sdata, ifsta, true, true,
+                                              WLAN_REASON_DEAUTH_LEAVING);
+
                set_bit(IEEE80211_STA_REQ_AUTH, &ifsta->request);
                queue_work(local->hw.workqueue, &ifsta->work);
        }