/*
         * Frame was send with retries, hardware tried
         * different rates to send out the frame, at each
-        * retry it lowered the rate 1 step.
+        * retry it lowered the rate 1 step except when the
+        * lowest rate was used.
         */
        for (i = 0; i < retry_rates && i < IEEE80211_TX_MAX_RATES; i++) {
                tx_info->status.rates[i].idx = rate_idx - i;
                tx_info->status.rates[i].flags = rate_flags;
+
+               if (rate_idx - i == 0) {
+                       /*
+                        * The lowest rate (index 0) was used until the
+                        * number of max retries was reached.
+                        */
+                       tx_info->status.rates[i].count = retry_rates - i;
+                       i++;
+                       break;
+               }
                tx_info->status.rates[i].count = 1;
        }
        if (i < (IEEE80211_TX_MAX_RATES - 1))