Index: uspace/drv/bus/usb/ehci/ehci_rh.c
===================================================================
--- uspace/drv/bus/usb/ehci/ehci_rh.c	(revision 1329dc0cfa673b0c8543f9c31a769ea91f26b150)
+++ uspace/drv/bus/usb/ehci/ehci_rh.c	(revision 92900e293a66c7f12a2ded20c269d592a9cd8785)
@@ -36,4 +36,5 @@
 #include <errno.h>
 #include <mem.h>
+#include <str_error.h>
 #include <sys/types.h>
 
@@ -145,4 +146,6 @@
 	    batch->buffer, batch->buffer_size, &batch->transfered_size);
 	if (batch->error == ENAK) {
+		usb_log_debug("EHCI RH(%p): BATCH(%p) adding as unfinished\n",
+		    instance, batch);
 		/* This is safe because only status change interrupt transfers
 		 * return NAK. The assertion holds true because the batch
@@ -153,4 +156,6 @@
 		usb_transfer_batch_finish(batch, NULL);
 		usb_transfer_batch_destroy(batch);
+		usb_log_debug("EHCI RH(%p): BATCH(%p) virtual request: %s\n",
+		    instance, batch, str_error(batch->error));
 	}
 	return EOK;
Index: uspace/drv/bus/usb/ehci/hc.c
===================================================================
--- uspace/drv/bus/usb/ehci/hc.c	(revision 1329dc0cfa673b0c8543f9c31a769ea91f26b150)
+++ uspace/drv/bus/usb/ehci/hc.c	(revision 92900e293a66c7f12a2ded20c269d592a9cd8785)
@@ -220,4 +220,8 @@
 	assert(ep);
 	ehci_endpoint_t *ehci_ep = ehci_endpoint_get(ep);
+	usb_log_debug("HCD(%p) enqueue EP(%d:%d:%s:%s)\n", instance,
+	    ep->address, ep->endpoint,
+	    usb_str_transfer_type_short(ep->transfer_type),
+	    usb_str_direction(ep->direction));
 	switch (ep->transfer_type)
 	{
@@ -240,4 +244,8 @@
 	assert(ep);
 	ehci_endpoint_t *ehci_ep = ehci_endpoint_get(ep);
+	usb_log_debug("HCD(%p) dequeue EP(%d:%d:%s:%s)\n", instance,
+	    ep->address, ep->endpoint,
+	    usb_str_transfer_type_short(ep->transfer_type),
+	    usb_str_direction(ep->direction));
 	switch (ep->transfer_type)
 	{
