Index: uspace/lib/usbhost/src/batch.c
===================================================================
--- uspace/lib/usbhost/src/batch.c	(revision 0c224b2f3bde82f015f849fcb24fce97e3dee980)
+++ uspace/lib/usbhost/src/batch.c	(revision 5fe0a6978c5352e80c555f1545239199e05167eb)
@@ -38,4 +38,5 @@
 #include <usb/debug.h>
 #include <usb/host/batch.h>
+#include <usb/host/hcd.h>
 
 void usb_transfer_batch_call_in(usb_transfer_batch_t *instance);
@@ -150,4 +151,12 @@
 	    str_error(instance->error));
 
+	if (instance->ep->transfer_type == USB_TRANSFER_CONTROL
+	    && instance->error == EOK) {
+		usb_target_t target =
+		    {instance->ep->address, instance->ep->endpoint};
+		reset_ep_if_need(
+		    fun_to_hcd(instance->fun), target, instance->setup_buffer);
+	}
+
 	instance->callback_out(instance->fun,
 	    instance->error, instance->arg);
