*/
        if (mac->txrates_change)
                oldrates = mac->txrates;
-       if (ieee->modulation & IEEE80211_OFDM_MODULATION) {
-               mac->txrates.default_rate = IEEE80211_OFDM_RATE_54MB;
-               change |= IEEE80211SOFTMAC_TXRATECHG_DEFAULT;
-               mac->txrates.default_fallback = IEEE80211_OFDM_RATE_24MB;
-               change |= IEEE80211SOFTMAC_TXRATECHG_DEFAULT_FBACK;
-       } else if (ieee->modulation & IEEE80211_CCK_MODULATION) {
+       /* FIXME: We don't correctly handle backing down to lower
+          rates, so 801.11g devices start off at 11M for now. People
+          can manually change it if they really need to, but 11M is
+          more reliable. Note similar logic in
+          ieee80211softmac_wx_set_rate() */     
+       if (ieee->modulation & IEEE80211_CCK_MODULATION) {
                mac->txrates.default_rate = IEEE80211_CCK_RATE_11MB;
                change |= IEEE80211SOFTMAC_TXRATECHG_DEFAULT;
                mac->txrates.default_fallback = IEEE80211_CCK_RATE_5MB;
                change |= IEEE80211SOFTMAC_TXRATECHG_DEFAULT_FBACK;
+       } else if (ieee->modulation & IEEE80211_OFDM_MODULATION) {
+               mac->txrates.default_rate = IEEE80211_OFDM_RATE_54MB;
+               change |= IEEE80211SOFTMAC_TXRATECHG_DEFAULT;
+               mac->txrates.default_fallback = IEEE80211_OFDM_RATE_24MB;
+               change |= IEEE80211SOFTMAC_TXRATECHG_DEFAULT_FBACK;
        } else
                assert(0);
        if (mac->txrates_change)
 
        int err = -EINVAL;
 
        if (in_rate == -1) {
-               /* automatic detect */
-               if (ieee->modulation & IEEE80211_OFDM_MODULATION)
-                       in_rate = 54000000;
-               else
+               /* FIXME: We don't correctly handle backing down to lower
+                  rates, so 801.11g devices start off at 11M for now. People
+                  can manually change it if they really need to, but 11M is
+                  more reliable. Note similar logic in
+                  ieee80211softmac_wx_set_rate() */     
+               if (ieee->modulation & IEEE80211_CCK_MODULATION)
                        in_rate = 11000000;
+               else
+                       in_rate = 54000000;
        }
 
        switch (in_rate) {