Index: uspace/lib/usb/include/usb/host/endpoint.h
===================================================================
--- uspace/lib/usb/include/usb/host/endpoint.h	(revision 92d6868acefb75faf04356ff5afea6f519df39c9)
+++ uspace/lib/usb/include/usb/host/endpoint.h	(revision 506d3304a9e494319951e89a619b5c1bad221a58)
@@ -65,4 +65,5 @@
 void endpoint_toggle_reset(link_t *ep);
 
+void endpoint_toggle_reset_filtered(link_t *ep, usb_endpoint_t epn);
 
 #endif
Index: uspace/lib/usb/src/host/device_keeper.c
===================================================================
--- uspace/lib/usb/src/host/device_keeper.c	(revision 92d6868acefb75faf04356ff5afea6f519df39c9)
+++ uspace/lib/usb/src/host/device_keeper.c	(revision 506d3304a9e494319951e89a619b5c1bad221a58)
@@ -128,6 +128,12 @@
 		/* recipient is endpoint, value is zero (ENDPOINT_STALL) */
 		if (((data[0] & 0xf) == 1) && ((data[2] | data[3]) == 0)) {
+			while (current !=
+			   &instance->devices[target.address].endpoints)
+			{
 			/* endpoint number is < 16, thus first byte is enough */
-			assert(!"NOT IMPLEMENTED!");
+				endpoint_toggle_reset_filtered(
+				    current, data[4]);
+				current = current->next;
+			}
 		}
 	break;
Index: uspace/lib/usb/src/host/endpoint.c
===================================================================
--- uspace/lib/usb/src/host/endpoint.c	(revision 92d6868acefb75faf04356ff5afea6f519df39c9)
+++ uspace/lib/usb/src/host/endpoint.c	(revision 506d3304a9e494319951e89a619b5c1bad221a58)
@@ -80,4 +80,13 @@
 	instance->toggle = 0;
 }
+/*----------------------------------------------------------------------------*/
+void endpoint_toggle_reset_filtered(link_t *ep, usb_endpoint_t epn)
+{
+	endpoint_t *instance =
+	    list_get_instance(ep, endpoint_t, same_device_eps);
+	assert(instance);
+	if (instance->endpoint == epn)
+		instance->toggle = 0;
+}
 /**
  * @}
