unsigned char       *seg_ptr;
        cb_desc             *tcb_desc;
        u8                  bLastIniPkt;
+       u8                  index;
 
        firmware_init_param(dev);
        //Fragmentation might be required
                tcb_desc->txbuf_size = (u16)i;
                skb_put(skb, i);
 
-               if (!priv->ieee80211->check_nic_enough_desc(dev,tcb_desc->queue_index) ||
-                       (!skb_queue_empty(&priv->ieee80211->skb_waitQ[tcb_desc->queue_index])) ||
-                       (priv->ieee80211->queue_stop)) {
+               index = tcb_desc->queue_index;
+               if (!priv->ieee80211->check_nic_enough_desc(dev, index) ||
+                      (!skb_queue_empty(&priv->ieee80211->skb_waitQ[index])) ||
+                      (priv->ieee80211->queue_stop)) {
                        RT_TRACE(COMP_FIRMWARE,"=====================================================> tx full!\n");
                        skb_queue_tail(&priv->ieee80211->skb_waitQ[tcb_desc->queue_index], skb);
                } else {