return 0;
                        }
                } else { /* First Frag or Mid Frag */
-                       if (byFBOption == AUTO_FB_0) {
-                               if (wRate < RATE_18M)
-                                       wRate = RATE_18M;
-                               else if (wRate > RATE_54M)
-                                       wRate = RATE_54M;
+                       if (wRate < RATE_18M)
+                               wRate = RATE_18M;
+                       else if (wRate > RATE_54M)
+                               wRate = RATE_54M;
 
+                       if (byFBOption == AUTO_FB_0) {
                                if (uFragIdx == (uMACfragNum - 2))
                                        uNextPktTime = s_uGetTxRsvTime(pDevice, byPktType, cbLastFragmentSize, wFB_Opt0[FB_RATE0][wRate-RATE_18M], bNeedAck);
                                else
                                        uNextPktTime = s_uGetTxRsvTime(pDevice, byPktType, cbFrameLength, wFB_Opt0[FB_RATE0][wRate-RATE_18M], bNeedAck);
 
                        } else { /* (byFBOption == AUTO_FB_1) */
-                               if (wRate < RATE_18M)
-                                       wRate = RATE_18M;
-                               else if (wRate > RATE_54M)
-                                       wRate = RATE_54M;
-
                                if (uFragIdx == (uMACfragNum - 2))
                                        uNextPktTime = s_uGetTxRsvTime(pDevice, byPktType, cbLastFragmentSize, wFB_Opt1[FB_RATE0][wRate-RATE_18M], bNeedAck);
                                else
                                return 0;
                        }
                } else { /* First Frag or Mid Frag */
-                       if (byFBOption == AUTO_FB_0) {
-                               if (wRate < RATE_18M)
-                                       wRate = RATE_18M;
-                               else if (wRate > RATE_54M)
-                                       wRate = RATE_54M;
+                       if (wRate < RATE_18M)
+                               wRate = RATE_18M;
+                       else if (wRate > RATE_54M)
+                               wRate = RATE_54M;
 
+                       if (byFBOption == AUTO_FB_0) {
                                if (uFragIdx == (uMACfragNum - 2))
                                        uNextPktTime = s_uGetTxRsvTime(pDevice, byPktType, cbLastFragmentSize, wFB_Opt0[FB_RATE1][wRate-RATE_18M], bNeedAck);
                                else
                                        uNextPktTime = s_uGetTxRsvTime(pDevice, byPktType, cbFrameLength, wFB_Opt0[FB_RATE1][wRate-RATE_18M], bNeedAck);
 
                        } else { /* (byFBOption == AUTO_FB_1) */
-                               if (wRate < RATE_18M)
-                                       wRate = RATE_18M;
-                               else if (wRate > RATE_54M)
-                                       wRate = RATE_54M;
-
                                if (uFragIdx == (uMACfragNum - 2))
                                        uNextPktTime = s_uGetTxRsvTime(pDevice, byPktType, cbLastFragmentSize, wFB_Opt1[FB_RATE1][wRate-RATE_18M], bNeedAck);
                                else