--- linux-2.6.18.noarch/net/mac80211/mlme.c.orig 2008-11-26 10:34:04.000000000 -0500 +++ linux-2.6.18.noarch/net/mac80211/mlme.c 2008-11-26 10:35:16.000000000 -0500 @@ -3317,10 +3317,16 @@ void ieee80211_sta_work(void *ptr) if (ifsta->state != IEEE80211_AUTHENTICATE && ifsta->state != IEEE80211_ASSOCIATE && test_and_clear_bit(IEEE80211_STA_REQ_SCAN, &ifsta->request)) { + int rc; + if (ifsta->scan_ssid_len) - ieee80211_sta_start_scan(dev, ifsta->scan_ssid, ifsta->scan_ssid_len); + rc = ieee80211_sta_start_scan(dev, ifsta->scan_ssid, ifsta->scan_ssid_len); else - ieee80211_sta_start_scan(dev, NULL, 0); + rc = ieee80211_sta_start_scan(dev, NULL, 0); + + if (rc) + ieee80211_scan_completed(local_to_hw(local)); + return; }