wait_queue_head_t waitq;
        struct workqueue_struct *work_thread;
 
+       /** Scanning */
        struct delayed_work scan_work;
        struct delayed_work assoc_work;
        struct work_struct sync_channel;
+       /* remember which channel was scanned last, != 0 if currently scanning */
+       int scan_channel;
 
        /** Hardware access */
        int (*hw_host_to_card) (struct lbs_private *priv, u8 type, u8 *payload, u16 nb);
        struct cmd_ds_802_11_get_log logmsg;
 
        u32 monitormode;
-       int last_scanned_channel;
        u8 fw_ready;
 };
 
 
        }
 
        /* Prepare to continue an interrupted scan */
-       lbs_deb_scan("chan_count %d, last_scanned_channel %d\n",
-                    chan_count, priv->last_scanned_channel);
+       lbs_deb_scan("chan_count %d, scan_channel %d\n",
+                    chan_count, priv->scan_channel);
        curr_chans = chan_list;
        /* advance channel list by already-scanned-channels */
-       if (priv->last_scanned_channel > 0) {
-               curr_chans += priv->last_scanned_channel;
-               chan_count -= priv->last_scanned_channel;
+       if (priv->scan_channel > 0) {
+               curr_chans += priv->scan_channel;
+               chan_count -= priv->scan_channel;
        }
 
        /* Send scan command(s)
                    !full_scan &&
                    !priv->surpriseremoved) {
                        /* -1 marks just that we're currently scanning */
-                       if (priv->last_scanned_channel < 0)
-                               priv->last_scanned_channel = to_scan;
+                       if (priv->scan_channel < 0)
+                               priv->scan_channel = to_scan;
                        else
-                               priv->last_scanned_channel += to_scan;
+                               priv->scan_channel += to_scan;
                        cancel_delayed_work(&priv->scan_work);
                        queue_delayed_work(priv->work_thread, &priv->scan_work,
                                msecs_to_jiffies(300));
 #endif
 
 out2:
-       priv->last_scanned_channel = 0;
+       priv->scan_channel = 0;
 
 out:
        if (priv->connect_status == LBS_CONNECTED) {
                queue_delayed_work(priv->work_thread, &priv->scan_work,
                        msecs_to_jiffies(50));
        /* set marker that currently a scan is taking place */
-       priv->last_scanned_channel = -1;
+       priv->scan_channel = -1;
 
        if (priv->surpriseremoved)
                return -EIO;
        lbs_deb_enter(LBS_DEB_SCAN);
 
        /* iwlist should wait until the current scan is finished */
-       if (priv->last_scanned_channel)
+       if (priv->scan_channel)
                return -EAGAIN;
 
        /* Update RSSI if current BSS is a locally created ad-hoc BSS */