text: diff -ur ../rt2500-cvs-20050724/Module/rtmp_data.c ./Module/rtmp_data.c
  --- ../rt2500-cvs-20050724/Module/rtmp_data.c	2005-07-15 17:40:02.000000000 +0200
  +++ ./Module/rtmp_data.c	2005-07-26 19:04:28.000000000 +0200
  @@ -2741,6 +2741,23 @@
           return (NDIS_STATUS_FAILURE);
       }
   
  +    if (pAdapter->PortCfg.BssType == BSS_MONITOR)
  +    {
  +	pAdapter->TxRing[pAdapter->CurEncryptIndex].FrameType = BTYPE_DATA;
  +	pDest = (PUCHAR) pAdapter->TxRing[pAdapter->CurEncryptIndex].va_data_addr;              
  +	pTxD  = (PTXD_STRUC) pAdapter->TxRing[pAdapter->CurEncryptIndex].va_addr;
  +	MlmeSetPsmBit(pAdapter, PWR_ACTIVE);
  +	memcpy(pDest,skb->data,skb->len);
  +	RTMPWriteTxDescriptor(pTxD, TRUE, CIPHER_NONE, FALSE, FALSE, FALSE, SHORT_RETRY, IFS_BACKOFF, pAdapter->PortCfg.TxRate, 4, skb->len, pAdapter->PortCfg.TxPreambleInUsed, AccessCategory);
  +
  +	pAdapter->CurEncryptIndex++;
  +	if (pAdapter->CurEncryptIndex >= TX_RING_SIZE)
  +		pAdapter->CurEncryptIndex = 0;
  +	pAdapter->RalinkCounters.EncryptCount++;
  +
  +	goto skip_all_this_shit;
  +    }
  +
   	if (EnableTxBurst == 1)
   		FrameGap = IFS_SIFS;
   	else
  @@ -2779,6 +2796,7 @@
   	
   	//
   	// Start making 802.11 frame header
  +	// this whole code is just a pathetic mess
   	//
   	memset(&Header_802_11, 0, sizeof(HEADER_802_11)); // Initialize 802.11 header for each fragment
   	if (INFRA_ON(pAdapter))
  @@ -3411,6 +3429,7 @@
   		
   	}	while (NumberRequired > 0);
   
  +skip_all_this_shit:
   	
   	// Kick Encrypt Control Register at the end of all ring buffer preparation
   	RTMP_IO_WRITE32(pAdapter, SECCSR1, 0x1);
  diff -ur ../rt2500-cvs-20050724/Module/rtmp_main.c ./Module/rtmp_main.c
  --- ../rt2500-cvs-20050724/Module/rtmp_main.c	2005-07-15 17:40:02.000000000 +0200
  +++ ./Module/rtmp_main.c	2005-07-26 19:03:46.000000000 +0200
  @@ -354,6 +354,7 @@
   
       DBGPRINT(RT_DEBUG_INFO, "<==== RTMPSendPackets\n");
   
  +/*
       if (pAdapter->PortCfg.BssType == BSS_MONITOR)
       {
          dev_kfree_skb_irq(skb); 
  @@ -368,7 +369,7 @@
           // And Mibss for Ad-hoc mode setup
           dev_kfree_skb_irq(skb);
       }
  -    else
  +    else*/
       {
           // This function has to manage NdisSendComplete return call within its routine
           // NdisSendComplete will acknowledge upper layer in two steps.
  