Index: uspace/drv/uhci-hcd/batch.c
===================================================================
--- uspace/drv/uhci-hcd/batch.c	(revision 0db3ad621f232b9d410eb17188b4d94684c6950b)
+++ uspace/drv/uhci-hcd/batch.c	(revision 67352d2ce57d0bbae9f4f2b0a767afb56ae158b6)
@@ -177,4 +177,5 @@
 			usb_log_debug("Batch(%p) found error TD(%d):%x.\n",
 			    instance, i, instance->tds[i].status);
+			td_print_status(&instance->tds[i]);
 
 			device_keeper_set_toggle(instance->manager,
@@ -318,5 +319,5 @@
 		++packet;
 	}
-	instance->tds[packet - 1].status |= TD_STATUS_COMPLETE_INTERRUPT_FLAG;
+	instance->tds[packet - 1].status |= TD_STATUS_IOC_FLAG;
 	device_keeper_set_toggle(instance->manager, instance->target, toggle);
 }
@@ -371,5 +372,5 @@
 
 
-	instance->tds[packet].status |= TD_STATUS_COMPLETE_INTERRUPT_FLAG;
+	instance->tds[packet].status |= TD_STATUS_IOC_FLAG;
 	usb_log_debug2("Control last TD status: %x.\n",
 	    instance->tds[packet].status);
Index: uspace/drv/uhci-hcd/uhci.c
===================================================================
--- uspace/drv/uhci-hcd/uhci.c	(revision 0db3ad621f232b9d410eb17188b4d94684c6950b)
+++ uspace/drv/uhci-hcd/uhci.c	(revision 67352d2ce57d0bbae9f4f2b0a767afb56ae158b6)
@@ -436,11 +436,10 @@
 
 		int frnum = pio_read_16(&instance->registers->frnum) & 0x3ff;
-		usb_log_debug2("Framelist item: %d \n", frnum );
 
 		uintptr_t expected_pa = instance->frame_list[frnum] & (~0xf);
 		uintptr_t real_pa = addr_to_phys(QH(interrupt));
 		if (expected_pa != real_pa) {
-			usb_log_debug("Interrupt QH: %p vs. %p.\n",
-			    expected_pa, real_pa);
+			usb_log_debug("Interrupt QH: %p(frame: %d) vs. %p.\n",
+			    expected_pa, frnum, real_pa);
 		}
 
Index: uspace/drv/uhci-hcd/uhci_struct/transfer_descriptor.c
===================================================================
--- uspace/drv/uhci-hcd/uhci_struct/transfer_descriptor.c	(revision 0db3ad621f232b9d410eb17188b4d94684c6950b)
+++ uspace/drv/uhci-hcd/uhci_struct/transfer_descriptor.c	(revision 67352d2ce57d0bbae9f4f2b0a767afb56ae158b6)
@@ -88,7 +88,8 @@
 	}
 
-	usb_log_debug2("Created TD: %X:%X:%X:%X(%p).\n",
-	    instance->next, instance->status, instance->device,
+	usb_log_debug2("Created TD(%p): %X:%X:%X:%X(%p).\n",
+	    instance, instance->next, instance->status, instance->device,
 	    instance->buffer_ptr, buffer);
+	td_print_status(instance);
 	if (pid == USB_PID_SETUP) {
 		usb_log_debug("SETUP BUFFER: %s\n",
@@ -126,4 +127,27 @@
 	return EOK;
 }
+/*----------------------------------------------------------------------------*/
+void td_print_status(td_t *instance)
+{
+	assert(instance);
+	const uint32_t s = instance->status;
+	usb_log_debug2("TD(%p) status(%#x):%s %d,%s%s%s%s%s%s%s%s%s%s%s %d.\n",
+	    instance, instance->status,
+	    (s & TD_STATUS_SPD_FLAG) ? " SPD," : "",
+	    (s >> TD_STATUS_ERROR_COUNT_POS) & TD_STATUS_ERROR_COUNT_MASK,
+	    (s & TD_STATUS_LOW_SPEED_FLAG) ? " LOW SPEED," : "",
+	    (s & TD_STATUS_ISOCHRONOUS_FLAG) ? " ISOCHRONOUS," : "",
+	    (s & TD_STATUS_IOC_FLAG) ? " IOC," : "",
+	    (s & TD_STATUS_ERROR_ACTIVE) ? " ACTIVE," : "",
+	    (s & TD_STATUS_ERROR_STALLED) ? " STALLED," : "",
+	    (s & TD_STATUS_ERROR_BUFFER) ? " BUFFER," : "",
+	    (s & TD_STATUS_ERROR_BABBLE) ? " BABBLE," : "",
+	    (s & TD_STATUS_ERROR_NAK) ? " NAK," : "",
+	    (s & TD_STATUS_ERROR_CRC) ? " CRC/TIMEOUT," : "",
+	    (s & TD_STATUS_ERROR_BIT_STUFF) ? " BIT_STUFF," : "",
+	    (s & TD_STATUS_ERROR_RESERVED) ? " RESERVED," : "",
+	    (s >> TD_STATUS_ACTLEN_POS) & TD_STATUS_ACTLEN_MASK
+	);
+}
 /**
  * @}
Index: uspace/drv/uhci-hcd/uhci_struct/transfer_descriptor.h
===================================================================
--- uspace/drv/uhci-hcd/uhci_struct/transfer_descriptor.h	(revision 0db3ad621f232b9d410eb17188b4d94684c6950b)
+++ uspace/drv/uhci-hcd/uhci_struct/transfer_descriptor.h	(revision 67352d2ce57d0bbae9f4f2b0a767afb56ae158b6)
@@ -53,5 +53,5 @@
 #define TD_STATUS_LOW_SPEED_FLAG ( 1 << 26 )
 #define TD_STATUS_ISOCHRONOUS_FLAG ( 1 << 25 )
-#define TD_STATUS_COMPLETE_INTERRUPT_FLAG ( 1 << 24 )
+#define TD_STATUS_IOC_FLAG ( 1 << 24 )
 
 #define TD_STATUS_ERROR_ACTIVE ( 1 << 23 )
@@ -127,4 +127,6 @@
 	return (instance->status & TD_STATUS_ERROR_ACTIVE) != 0;
 }
+
+void td_print_status(td_t *instance);
 #endif
 /**
