Index: uspace/lib/usb/src/host/batch.c
===================================================================
--- uspace/lib/usb/src/host/batch.c	(revision 8dc762e047944f4eeb1b533176031bd8bfe58813)
+++ uspace/lib/usb/src/host/batch.c	(revision f567bcfa21aeafa070516a508a114ce99a13d224)
@@ -54,4 +54,5 @@
     void *arg,
     ddf_fun_t *fun,
+		endpoint_t *ep,
     void *private_data
     )
@@ -77,5 +78,5 @@
 	instance->next_step = NULL;
 	instance->error = EOK;
-
+	instance->ep = ep;
 }
 /*----------------------------------------------------------------------------*/
Index: uspace/lib/usb/src/host/device_keeper.c
===================================================================
--- uspace/lib/usb/src/host/device_keeper.c	(revision 8dc762e047944f4eeb1b533176031bd8bfe58813)
+++ uspace/lib/usb/src/host/device_keeper.c	(revision f567bcfa21aeafa070516a508a114ce99a13d224)
@@ -56,6 +56,6 @@
 		instance->devices[i].control_used = 0;
 		instance->devices[i].handle = 0;
-		instance->devices[i].toggle_status[0] = 0;
-		instance->devices[i].toggle_status[1] = 0;
+//		instance->devices[i].toggle_status[0] = 0;
+//		instance->devices[i].toggle_status[1] = 0;
 		list_initialize(&instance->devices[i].endpoints);
 	}
@@ -63,10 +63,10 @@
 /*----------------------------------------------------------------------------*/
 void usb_device_keeper_add_ep(
-    usb_device_keeper_t *instance, usb_address_t address, link_t *ep)
+    usb_device_keeper_t *instance, usb_address_t address, endpoint_t *ep)
 {
 	assert(instance);
 	fibril_mutex_lock(&instance->guard);
 	assert(instance->devices[address].occupied);
-	list_append(ep, &instance->devices[address].endpoints);
+	list_append(&ep->same_device_eps, &instance->devices[address].endpoints);
 	fibril_mutex_unlock(&instance->guard);
 }
@@ -131,8 +131,9 @@
 		if (((data[0] & 0xf) == 1) && ((data[2] | data[3]) == 0)) {
 			/* endpoint number is < 16, thus first byte is enough */
-			instance->devices[target.address].toggle_status[0] &=
-			    ~(1 << data[4]);
-			instance->devices[target.address].toggle_status[1] &=
-			    ~(1 << data[4]);
+			assert(!"NOT IMPLEMENTED!");
+//			instance->devices[target.address].toggle_status[0] &=
+//			    ~(1 << data[4]);
+//			instance->devices[target.address].toggle_status[1] &=
+//			    ~(1 << data[4]);
 		}
 	break;
@@ -142,6 +143,14 @@
 		/* target must be device */
 		if ((data[0] & 0xf) == 0) {
-			instance->devices[target.address].toggle_status[0] = 0;
-			instance->devices[target.address].toggle_status[1] = 0;
+			link_t *current =
+			    instance->devices[target.address].endpoints.next;
+			while (current !=
+			   instance->devices[target.address].endpoints.prev)
+			{
+				endpoint_toggle_reset(current);
+				current = current->next;
+			}
+//			instance->devices[target.address].toggle_status[0] = 0;
+//			instance->devices[target.address].toggle_status[1] = 0;
 		}
 	break;
@@ -150,4 +159,5 @@
 }
 /*----------------------------------------------------------------------------*/
+#if 0
 /** Get current value of endpoint toggle.
  *
@@ -212,4 +222,5 @@
 	return ret;
 }
+#endif
 /*----------------------------------------------------------------------------*/
 /** Get a free USB address
Index: uspace/lib/usb/src/host/endpoint.c
===================================================================
--- uspace/lib/usb/src/host/endpoint.c	(revision 8dc762e047944f4eeb1b533176031bd8bfe58813)
+++ uspace/lib/usb/src/host/endpoint.c	(revision f567bcfa21aeafa070516a508a114ce99a13d224)
@@ -35,5 +35,4 @@
 
 #include <errno.h>
-
 #include <usb/host/endpoint.h>
 
@@ -57,4 +56,17 @@
 }
 /*----------------------------------------------------------------------------*/
+int endpoint_toggle_get(endpoint_t *instance)
+{
+	assert(instance);
+	return (int)instance->toggle;
+}
+/*----------------------------------------------------------------------------*/
+void endpoint_toggle_set(endpoint_t *instance, int toggle)
+{
+	assert(instance);
+	assert(toggle == 0 || toggle == 1);
+	instance->toggle = toggle;
+}
+/*----------------------------------------------------------------------------*/
 void endpoint_toggle_reset(link_t *ep)
 {
