-                               uint8_t EPTableIndex = ((EndpointNumber & ENDPOINT_EPNUM_MASK) << 1) |
-                                                       ((EndpointNumber & ENDPOINT_DIR_IN) ? 0x01 : 0);
-
-                               Endpoint_SelectedEndpoint       = EndpointNumber;
-                               Endpoint_SelectedEndpointAux    = &Endpoint_AuxData[EPTableIndex];
-                               Endpoint_SelectedEndpointHandle = (EndpointNumber & ENDPOINT_DIR_IN) ?
-                                                                  &USB_EndpointTable.Endpoints[EndpointNumber & ENDPOINT_EPNUM_MASK].IN :
-                                                                  &USB_EndpointTable.Endpoints[EndpointNumber & ENDPOINT_EPNUM_MASK].OUT;
+                               USB_Endpoint_SelectedEndpoint   = EndpointNumber;
+                               
+                               if (EndpointNumber & ENDPOINT_DIR_IN)
+                               {
+                                       USB_Endpoint_SelectedFIFO   = &USB_Endpoint_FIFOs[EndpointNumber & ENDPOINT_EPNUM_MASK].IN;
+                                       USB_Endpoint_SelectedHandle = &USB_EndpointTable.Endpoints[EndpointNumber & ENDPOINT_EPNUM_MASK].IN;
+                               }
+                               else
+                               {
+                                       USB_Endpoint_SelectedFIFO   = &USB_Endpoint_FIFOs[EndpointNumber & ENDPOINT_EPNUM_MASK].OUT;
+                                       USB_Endpoint_SelectedHandle = &USB_EndpointTable.Endpoints[EndpointNumber & ENDPOINT_EPNUM_MASK].OUT;
+                               }