const u8 *key, u8 key_len, u8 key_idx);
 int ieee80211_build_preq_ies(struct ieee80211_local *local, u8 *buffer,
                             const u8 *ie, size_t ie_len,
-                            enum ieee80211_band band, u32 rate_mask);
+                            enum ieee80211_band band, u32 rate_mask,
+                            u8 channel);
 void ieee80211_send_probe_req(struct ieee80211_sub_if_data *sdata, u8 *dst,
                              const u8 *ssid, size_t ssid_len,
                              const u8 *ie, size_t ie_len);
 
        local->hw_scan_req->n_channels = n_chans;
 
        ielen = ieee80211_build_preq_ies(local, (u8 *)local->hw_scan_req->ie,
-                                        req->ie, req->ie_len, band, (u32) -1);
+                                        req->ie, req->ie_len, band, (u32) -1,
+                                        0);
        local->hw_scan_req->ie_len = ielen;
 
        return true;
 
 
 int ieee80211_build_preq_ies(struct ieee80211_local *local, u8 *buffer,
                             const u8 *ie, size_t ie_len,
-                            enum ieee80211_band band, u32 rate_mask)
+                            enum ieee80211_band band, u32 rate_mask,
+                            u8 channel)
 {
        struct ieee80211_supported_band *sband;
        u8 *pos;
                pos += ext_rates_len;
        }
 
+       if (channel && sband->band == IEEE80211_BAND_2GHZ) {
+               *pos++ = WLAN_EID_DS_PARAMS;
+               *pos++ = 1;
+               *pos++ = channel;
+       }
+
        /* insert custom IEs that go before HT */
        if (ie && ie_len) {
                static const u8 before_ht[] = {
        struct ieee80211_mgmt *mgmt;
        size_t buf_len;
        u8 *buf;
+       u8 chan;
 
        /* FIXME: come up with a proper value */
        buf = kmalloc(200 + ie_len, GFP_KERNEL);
                return;
        }
 
+       chan = ieee80211_frequency_to_channel(
+               local->hw.conf.channel->center_freq);
+
        buf_len = ieee80211_build_preq_ies(local, buf, ie, ie_len,
                                           local->hw.conf.channel->band,
                                           sdata->rc_rateidx_mask
-                                          [local->hw.conf.channel->band]);
+                                          [local->hw.conf.channel->band],
+                                          chan);
 
        skb = ieee80211_probereq_get(&local->hw, &sdata->vif,
                                     ssid, ssid_len,