Index: uspace/drv/bus/usb/ehci/ehci_batch.c
===================================================================
--- uspace/drv/bus/usb/ehci/ehci_batch.c	(revision 888238e953d747d7f84f15f4b799d4c161b17177)
+++ uspace/drv/bus/usb/ehci/ehci_batch.c	(revision a0e09efa60dbbc0e3802c852e85de6ea85ec0d84)
@@ -238,6 +238,12 @@
 	assert(ehci_batch->base.transfered_size <= ehci_batch->base.buffer_size);
 
+	const size_t setup_size = (ehci_batch->base.ep->transfer_type == USB_TRANSFER_CONTROL)
+		? USB_SETUP_PACKET_SIZE
+		: 0;
+
 	if (ehci_batch->base.dir == USB_DIRECTION_IN)
-		memcpy(ehci_batch->base.buffer, ehci_batch->device_buffer, ehci_batch->base.transfered_size);
+		memcpy(ehci_batch->base.buffer,
+		    ehci_batch->device_buffer + setup_size,
+		    ehci_batch->base.transfered_size);
 
 	/* Clear TD pointers */
Index: uspace/drv/bus/usb/ehci/hw_struct/queue_head.c
===================================================================
--- uspace/drv/bus/usb/ehci/hw_struct/queue_head.c	(revision 888238e953d747d7f84f15f4b799d4c161b17177)
+++ uspace/drv/bus/usb/ehci/hw_struct/queue_head.c	(revision a0e09efa60dbbc0e3802c852e85de6ea85ec0d84)
@@ -46,4 +46,7 @@
 	[USB_SPEED_FULL] = QH_EP_CHAR_EPS_FS,
 	[USB_SPEED_HIGH] = QH_EP_CHAR_EPS_HS,
+
+	/* Solely for the roothub */
+	[USB_SPEED_MAX] = 0,
 };
 
