+Index: madwifi-trunk-r3314/net80211/ieee80211_node.c
+===================================================================
+--- madwifi-trunk-r3314.orig/net80211/ieee80211_node.c 2008-04-23 04:33:16.000000000 +0200
++++ madwifi-trunk-r3314/net80211/ieee80211_node.c 2008-04-23 05:28:47.000000000 +0200
+@@ -1877,6 +1877,17 @@
+
+ ieee80211_scan_timeout(ic);
+ ieee80211_timeout_stations(&ic->ic_sta);
++ if ((ic->ic_flags & IEEE80211_F_USEPROT) &&
++ (ic->ic_protmode_lasttrig + ic->ic_protmode_timeout * HZ <
++ jiffies)) {
++ struct ieee80211vap *tmpvap;
++
++ /* expire protection mode */
++ ic->ic_flags &= ~IEEE80211_F_USEPROT;
++ TAILQ_FOREACH(tmpvap, &ic->ic_vaps, iv_next) {
++ tmpvap->iv_flags_ext |= IEEE80211_FEXT_ERPUPDATE;
++ }
++ }
+
+ ic->ic_inact.expires = jiffies + IEEE80211_INACT_WAIT * HZ;
+ add_timer(&ic->ic_inact);