Index: uspace/drv/bus/usb/ehci/ehci_batch.c
===================================================================
--- uspace/drv/bus/usb/ehci/ehci_batch.c	(revision 0247bd24eab20736d9bd6ad605a5fffbf6d4fc4c)
+++ uspace/drv/bus/usb/ehci/ehci_batch.c	(revision 2ca5a198f7308b0c892b04c0fcda44f5e83eb8f0)
@@ -139,5 +139,7 @@
 	}
 
-	assert(batch_setup[ehci_batch->base.ep->transfer_type]);
+	if (!batch_setup[ehci_batch->base.ep->transfer_type])
+		return ENOTSUP;
+
 	batch_setup[ehci_batch->base.ep->transfer_type](ehci_batch);
 
Index: uspace/drv/bus/usb/ohci/ohci_batch.c
===================================================================
--- uspace/drv/bus/usb/ohci/ohci_batch.c	(revision 0247bd24eab20736d9bd6ad605a5fffbf6d4fc4c)
+++ uspace/drv/bus/usb/ohci/ohci_batch.c	(revision 2ca5a198f7308b0c892b04c0fcda44f5e83eb8f0)
@@ -149,5 +149,5 @@
                 memcpy(ohci_batch->device_buffer, usb_batch->setup.buffer, setup_size);
 		/* Copy generic data */
-		if (usb_batch->ep->direction != USB_DIRECTION_IN)
+		if (usb_batch->dir == USB_DIRECTION_OUT)
 			memcpy(
 			    ohci_batch->device_buffer + setup_size,
