Index: uspace/drv/bus/usb/ehci/ehci_bus.c
===================================================================
--- uspace/drv/bus/usb/ehci/ehci_bus.c	(revision 944f8fdd006b2359954cee16ede3ed01c2d88b24)
+++ uspace/drv/bus/usb/ehci/ehci_bus.c	(revision c6f82e543978d3fafa47bd89b2e23a3d0a86cf50)
@@ -43,10 +43,11 @@
 #include "hc.h"
 
-/** Callback to set toggle on ED.
+/**
+ * Callback to set toggle on ED.
  *
  * @param[in] hcd_ep hcd endpoint structure
  * @param[in] toggle new value of toggle bit
  */
-static void ehci_ep_toggle_reset(endpoint_t *ep)
+void ehci_ep_toggle_reset(endpoint_t *ep)
 {
 	ehci_endpoint_t *instance = ehci_endpoint_get(ep);
@@ -54,5 +55,4 @@
 		usb_log_warning("EP(%p): Resetting toggle bit for transfer directed EP", instance);
 	qh_toggle_set(instance->qh, 0);
-	ep->toggle = 0;
 }
 
@@ -169,10 +169,11 @@
 	.interrupt = ehci_hc_interrupt,
 	.status = ehci_hc_status,
+
 	.endpoint_destroy = ehci_endpoint_destroy,
 	.endpoint_create = ehci_endpoint_create,
 	.endpoint_register = ehci_register_ep,
 	.endpoint_unregister = ehci_unregister_ep,
-	.endpoint_toggle_reset = ehci_ep_toggle_reset,
 	.endpoint_count_bw = bandwidth_count_usb20,
+
 	.batch_create = ehci_create_batch,
 	.batch_destroy = ehci_destroy_batch,
Index: uspace/drv/bus/usb/ehci/ehci_bus.h
===================================================================
--- uspace/drv/bus/usb/ehci/ehci_bus.h	(revision 944f8fdd006b2359954cee16ede3ed01c2d88b24)
+++ uspace/drv/bus/usb/ehci/ehci_bus.h	(revision c6f82e543978d3fafa47bd89b2e23a3d0a86cf50)
@@ -68,4 +68,5 @@
 } ehci_bus_t;
 
+void ehci_ep_toggle_reset(endpoint_t *);
 void ehci_bus_prepare_ops(void);
 
Index: uspace/drv/bus/usb/ehci/hc.c
===================================================================
--- uspace/drv/bus/usb/ehci/hc.c	(revision 944f8fdd006b2359954cee16ede3ed01c2d88b24)
+++ uspace/drv/bus/usb/ehci/hc.c	(revision c6f82e543978d3fafa47bd89b2e23a3d0a86cf50)
@@ -45,4 +45,5 @@
 #include <usb/debug.h>
 #include <usb/usb.h>
+#include <usb/host/utility.h>
 
 #include "ehci_batch.h"
@@ -379,4 +380,5 @@
 				list_remove(current);
 				endpoint_del_ref(&ep->base);
+				hc_reset_toggles(&batch->base, &ehci_ep_toggle_reset);
 				usb_transfer_batch_finish(&batch->base);
 			}
