if (USB_ControlRequest.bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE))
                        {
                                Endpoint_ClearSETUP();
+                               while (!(Endpoint_IsINReady()));
                                Endpoint_Write_8(MSInterfaceInfo->Config.TotalLUNs - 1);
                                Endpoint_ClearIN();
                                Endpoint_ClearStatusStage();
                                       (sizeof(MS_CommandBlockWrapper_t) - 16), &BytesProcessed) ==
                                       ENDPOINT_RWSTREAM_IncompleteTransfer)
        {
-               #if !defined(INTERRUPT_CONTROL_ENDPOINT)
-               USB_USBTask();
-               #endif
-
                if (MSInterfaceInfo->State.IsMassStoreReset)
                  return false;
        }
                                        MSInterfaceInfo->State.CommandBlock.SCSICommandLength, &BytesProcessed) ==
                                        ENDPOINT_RWSTREAM_IncompleteTransfer)
        {
-               #if !defined(INTERRUPT_CONTROL_ENDPOINT)
-               USB_USBTask();
-               #endif
-
                if (MSInterfaceInfo->State.IsMassStoreReset)
                  return false;
        }
                                        sizeof(MS_CommandStatusWrapper_t), &BytesProcessed) ==
                                        ENDPOINT_RWSTREAM_IncompleteTransfer)
        {
-               #if !defined(INTERRUPT_CONTROL_ENDPOINT)
-               USB_USBTask();
-               #endif
-
                if (MSInterfaceInfo->State.IsMassStoreReset)
                  return;
        }