1diff -ur ../rt2500-cvs-20050724/Module/rtmp_data.c ./Module/rtmp_data.c
2--- ../rt2500-cvs-20050724/Module/rtmp_data.c	2005-07-15 17:40:02.000000000 +0200
3+++ ./Module/rtmp_data.c	2005-07-26 19:04:28.000000000 +0200
4@@ -2741,6 +2741,23 @@
5         return (NDIS_STATUS_FAILURE);
6     }
7
8+    if (pAdapter->PortCfg.BssType == BSS_MONITOR)
9+    {
10+	pAdapter->TxRing[pAdapter->CurEncryptIndex].FrameType = BTYPE_DATA;
11+	pDest = (PUCHAR) pAdapter->TxRing[pAdapter->CurEncryptIndex].va_data_addr;
12+	pTxD  = (PTXD_STRUC) pAdapter->TxRing[pAdapter->CurEncryptIndex].va_addr;
13+	MlmeSetPsmBit(pAdapter, PWR_ACTIVE);
14+	memcpy(pDest,skb->data,skb->len);
15+	RTMPWriteTxDescriptor(pTxD, TRUE, CIPHER_NONE, FALSE, FALSE, FALSE, SHORT_RETRY, IFS_BACKOFF, pAdapter->PortCfg.TxRate, 4, skb->len, pAdapter->PortCfg.TxPreambleInUsed, AccessCategory);
16+
17+	pAdapter->CurEncryptIndex++;
18+	if (pAdapter->CurEncryptIndex >= TX_RING_SIZE)
19+		pAdapter->CurEncryptIndex = 0;
20+	pAdapter->RalinkCounters.EncryptCount++;
21+
22+	goto skip_all_this_shit;
23+    }
24+
25 	if (EnableTxBurst == 1)
26 		FrameGap = IFS_SIFS;
27 	else
28@@ -2779,6 +2796,7 @@
29
30 	//
31 	// Start making 802.11 frame header
32+	// this whole code is just a pathetic mess
33 	//
34 	memset(&Header_802_11, 0, sizeof(HEADER_802_11)); // Initialize 802.11 header for each fragment
35 	if (INFRA_ON(pAdapter))
36@@ -3411,6 +3429,7 @@
37
38 	}	while (NumberRequired > 0);
39
40+skip_all_this_shit:
41
42 	// Kick Encrypt Control Register at the end of all ring buffer preparation
43 	RTMP_IO_WRITE32(pAdapter, SECCSR1, 0x1);
44diff -ur ../rt2500-cvs-20050724/Module/rtmp_main.c ./Module/rtmp_main.c
45--- ../rt2500-cvs-20050724/Module/rtmp_main.c	2005-07-15 17:40:02.000000000 +0200
46+++ ./Module/rtmp_main.c	2005-07-26 19:03:46.000000000 +0200
47@@ -354,6 +354,7 @@
48
49     DBGPRINT(RT_DEBUG_INFO, "<==== RTMPSendPackets\n");
50
51+/*
52     if (pAdapter->PortCfg.BssType == BSS_MONITOR)
53     {
54        dev_kfree_skb_irq(skb);
55@@ -368,7 +369,7 @@
56         // And Mibss for Ad-hoc mode setup
57         dev_kfree_skb_irq(skb);
58     }
59-    else
60+    else*/
61     {
62         // This function has to manage NdisSendComplete return call within its routine
63         // NdisSendComplete will acknowledge upper layer in two steps.
64