diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c
index 014c307c270cc9e4c028595c06c4207809ab8385..1bc8c14e6aec9efd17045333806baf0b64460991 100644
--- a/drivers/net/wireless/rt2x00/rt2x00dev.c
+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
@@ -628,21 +628,11 @@ void rt2x00lib_write_tx_desc(struct rt2x00_dev *rt2x00dev,
 
 	memset(&txdesc, 0, sizeof(txdesc));
 
+	txdesc.queue = skbdesc->entry->queue->qid;
 	txdesc.cw_min = skbdesc->entry->queue->cw_min;
 	txdesc.cw_max = skbdesc->entry->queue->cw_max;
 	txdesc.aifs = skbdesc->entry->queue->aifs;
 
-	/*
-	 * Identify queue
-	 */
-	if (control->queue < rt2x00dev->hw->queues)
-		txdesc.queue = control->queue;
-	else if (control->queue == IEEE80211_TX_QUEUE_BEACON ||
-		 control->queue == IEEE80211_TX_QUEUE_AFTER_BEACON)
-		txdesc.queue = QID_MGMT;
-	else
-		txdesc.queue = QID_OTHER;
-
 	/*
 	 * Read required fields from ieee80211 header.
 	 */