rt2x00_set_field32(®, TXRX_CSR0_DROP_VERSION_ERROR, 1);
        rt2x00_set_field32(®, TXRX_CSR0_DROP_MULTICAST,
                           !(*total_flags & FIF_ALLMULTI));
-       rt2x00_set_field32(®, TXRX_CSR0_DROP_BORADCAST, 0);
-       rt2x00_set_field32(®, TXRX_CSR0_DROP_ACK_CTS, 1);
+       rt2x00_set_field32(®, TXRX_CSR0_DROP_BROADCAST, 0);
+       rt2x00_set_field32(®, TXRX_CSR0_DROP_ACK_CTS,
+                          !(*total_flags & FIF_CONTROL));
        rt2x00pci_register_write(rt2x00dev, TXRX_CSR0, reg);
 }
 
 
 #define TXRX_CSR0_DROP_TO_DS           FIELD32(0x00200000)
 #define TXRX_CSR0_DROP_VERSION_ERROR   FIELD32(0x00400000)
 #define TXRX_CSR0_DROP_MULTICAST       FIELD32(0x00800000)
-#define TXRX_CSR0_DROP_BORADCAST       FIELD32(0x01000000)
+#define TXRX_CSR0_DROP_BROADCAST       FIELD32(0x01000000)
 #define TXRX_CSR0_DROP_ACK_CTS         FIELD32(0x02000000)
 #define TXRX_CSR0_TX_WITHOUT_WAITING   FIELD32(0x04000000)
 
 
        rt2x00_set_field32(®, TXRX_CSR0_DROP_MULTICAST,
                           !(*total_flags & FIF_ALLMULTI));
        rt2x00_set_field32(®, TXRX_CSR0_DROP_BROADCAST, 0);
-       rt2x00_set_field32(®, TXRX_CSR0_DROP_ACK_CTS, 1);
+       rt2x00_set_field32(®, TXRX_CSR0_DROP_ACK_CTS,
+                          !(*total_flags & FIF_CONTROL));
        rt73usb_register_write(rt2x00dev, TXRX_CSR0, reg);
 }