diff --git a/net/ieee80211/softmac/ieee80211softmac_wx.c b/net/ieee80211/softmac/ieee80211softmac_wx.c
index fa2f7da..cc2e8ba 100644
--- a/net/ieee80211/softmac/ieee80211softmac_wx.c
+++ b/net/ieee80211/softmac/ieee80211softmac_wx.c
@@ -88,6 +88,13 @@ ieee80211softmac_wx_set_essid(struct net_device *net_dev,
 		   !memcmp(n->essid.data, extra, n->essid.len)) {
 			dprintk(KERN_INFO PFX "Already associating or associated to "MAC_FMT"\n",
 				MAC_ARG(sm->associnfo.bssid));
+			/* wpa_supplicant expects an association event, regardless of prior
+			 * association state. If associating, then the associnfo.work task
+			 * will send the appropriate event.
+			 */
+			if (sm->associnfo.associated)
+				ieee80211softmac_call_events_locked(sm,
+					IEEE80211SOFTMAC_EVENT_ASSOCIATED, n);
 			goto out;
 		} else {
 			dprintk(KERN_INFO PFX "Canceling existing associate request!\n");
