diff --git a/Demos/Device/ClassDriver/VirtualSerialMassStorage/Descriptors.h b/Demos/Device/ClassDriver/VirtualSerialMassStorage/Descriptors.h
index a2fff657218d5635d54409620a7331e0a368914c..f5970a4925209f855148b375ffe6c80a8caae815 100644
--- a/Demos/Device/ClassDriver/VirtualSerialMassStorage/Descriptors.h
+++ b/Demos/Device/ClassDriver/VirtualSerialMassStorage/Descriptors.h
@@ -43,13 +43,13 @@
 
 	/* Macros: */
 		/** Endpoint number of the CDC device-to-host notification IN endpoint. */
-		#define CDC_NOTIFICATION_EPNUM         2
+		#define CDC_NOTIFICATION_EPNUM         1
 
 		/** Endpoint number of the CDC device-to-host data IN endpoint. */
-		#define CDC_TX_EPNUM                   3
+		#define CDC_TX_EPNUM                   2
 
 		/** Endpoint number of the CDC host-to-device data OUT endpoint. */
-		#define CDC_RX_EPNUM                   4
+		#define CDC_RX_EPNUM                   3
 
 		/** Size in bytes of the CDC device-to-host notification IN endpoint. */
 		#define CDC_NOTIFICATION_EPSIZE        8
@@ -58,10 +58,10 @@
 		#define CDC_TXRX_EPSIZE                16
 
 		/** Endpoint number of the Mass Storage device-to-host data IN endpoint. */
-		#define MASS_STORAGE_IN_EPNUM          3
+		#define MASS_STORAGE_IN_EPNUM          4
 
 		/** Endpoint number of the Mass Storage host-to-device data OUT endpoint. */
-		#define MASS_STORAGE_OUT_EPNUM         4
+		#define MASS_STORAGE_OUT_EPNUM         5
 
 		/** Size in bytes of the Mass Storage data endpoints. */
 		#define MASS_STORAGE_IO_EPSIZE         64
diff --git a/Demos/Device/ClassDriver/VirtualSerialMassStorage/VirtualSerialMassStorage.c b/Demos/Device/ClassDriver/VirtualSerialMassStorage/VirtualSerialMassStorage.c
index c536c3ce3ec874d17cca30490ebaabcc97dbb54a..810cfb8b84c50a84d45088b0bbf1d9307f99c181 100644
--- a/Demos/Device/ClassDriver/VirtualSerialMassStorage/VirtualSerialMassStorage.c
+++ b/Demos/Device/ClassDriver/VirtualSerialMassStorage/VirtualSerialMassStorage.c
@@ -68,17 +68,17 @@ USB_ClassInfo_MS_Device_t Disk_MS_Interface =
 	{
 		.Config =
 			{
-				.InterfaceNumber           = 0,
+				.InterfaceNumber                = 2,
 
-				.DataINEndpointNumber      = MASS_STORAGE_IN_EPNUM,
-				.DataINEndpointSize        = MASS_STORAGE_IO_EPSIZE,
-				.DataINEndpointDoubleBank  = false,
+				.DataINEndpointNumber           = MASS_STORAGE_IN_EPNUM,
+				.DataINEndpointSize             = MASS_STORAGE_IO_EPSIZE,
+				.DataINEndpointDoubleBank       = false,
 
-				.DataOUTEndpointNumber     = MASS_STORAGE_OUT_EPNUM,
-				.DataOUTEndpointSize       = MASS_STORAGE_IO_EPSIZE,
-				.DataOUTEndpointDoubleBank = false,
+				.DataOUTEndpointNumber          = MASS_STORAGE_OUT_EPNUM,
+				.DataOUTEndpointSize            = MASS_STORAGE_IO_EPSIZE,
+				.DataOUTEndpointDoubleBank      = false,
 
-				.TotalLUNs                 = TOTAL_LUNS,
+				.TotalLUNs                      = TOTAL_LUNS,
 			},
 	};
 
diff --git a/Demos/Device/ClassDriver/VirtualSerialMassStorage/VirtualSerialMassStorage.txt b/Demos/Device/ClassDriver/VirtualSerialMassStorage/VirtualSerialMassStorage.txt
index aa9a74fae4d772bafc077ca6c75f52a6b8cce042..af13cdd277c296ecc7d43b51fdefded20405d2f7 100644
--- a/Demos/Device/ClassDriver/VirtualSerialMassStorage/VirtualSerialMassStorage.txt
+++ b/Demos/Device/ClassDriver/VirtualSerialMassStorage/VirtualSerialMassStorage.txt
@@ -13,7 +13,6 @@
  *  - Series 7 USB AVRs (AT90USBxxx7)
  *  - Series 6 USB AVRs (AT90USBxxx6)
  *  - Series 4 USB AVRs (ATMEGAxxU4)
- *  - Series 2 USB AVRs (AT90USBxx2, ATMEGAxxU2)
  *
  *  \section Sec_Info USB Information:
  *
diff --git a/LUFA/Drivers/USB/Core/HostStandardReq.c b/LUFA/Drivers/USB/Core/HostStandardReq.c
index f74490f93029d5cb2c4edff0f3aed7b802813513..d2523fdefbbbe2af4a58dcfb67803d9a8161b274 100644
--- a/LUFA/Drivers/USB/Core/HostStandardReq.c
+++ b/LUFA/Drivers/USB/Core/HostStandardReq.c
@@ -54,8 +54,11 @@ uint8_t USB_Host_SendControlRequest(void* const BufferPtr)
 
 	Pipe_Unfreeze();
 
-	for (uint8_t HeaderByte = 0; HeaderByte < sizeof(USB_Request_Header_t); HeaderByte++)
-	  Pipe_Write_Byte(*(HeaderStream++));
+	Pipe_Write_Byte(USB_ControlRequest.bmRequestType);
+	Pipe_Write_Byte(USB_ControlRequest.bRequest);
+	Pipe_Write_Word_LE(USB_ControlRequest.wValue);
+	Pipe_Write_Word_LE(USB_ControlRequest.wIndex);
+	Pipe_Write_Word_LE(USB_ControlRequest.wLength);
 
 	Pipe_ClearSETUP();