Index: uspace/drv/uhci-hcd/transfer_list.c
===================================================================
--- uspace/drv/uhci-hcd/transfer_list.c	(revision 61bb85dd4ff71b2ca717857ec4fdcc77e375b007)
+++ uspace/drv/uhci-hcd/transfer_list.c	(revision 2964aa87268c6e4bb1144741ea40c48bd51602fc)
@@ -72,18 +72,31 @@
 	assert((pa & LINK_POINTER_ADDRESS_MASK) == pa);
 
+
 	if (instance->queue_head->element & LINK_POINTER_TERMINATE_FLAG) {
+		usb_log_debug2("Adding td(%X:%X) to queue %s first.\n",
+			tracker->td->status, tracker->td->device, instance->name);
 		/* there is nothing scheduled */
 		instance->last_tracker = tracker;
 		instance->queue_head->element = pa;
+		usb_log_debug2("Added td(%X:%X) to queue %s first.\n",
+			tracker->td->status, tracker->td->device, instance->name);
 		return;
 	}
+	usb_log_debug2("Adding td(%X:%X) to queue %s last.%p\n",
+	    tracker->td->status, tracker->td->device, instance->name,
+	    instance->last_tracker);
 	/* now we can be sure that last_tracker is a valid pointer */
 	instance->last_tracker->td->next = pa;
 	instance->last_tracker = tracker;
 
+	usb_log_debug2("Added td(%X:%X) to queue %s last.\n",
+		tracker->td->status, tracker->td->device, instance->name);
+
 	/* check again, may be use atomic compare and swap */
-//	if (instance->queue_head->element & LINK_POINTER_TERMINATE_FLAG) {
-//		instance->queue_head->element = pa;
-//	}
+	if (instance->queue_head->element & LINK_POINTER_TERMINATE_FLAG) {
+		instance->queue_head->element = pa;
+		usb_log_debug2("Added td(%X:%X) to queue first2 %s.\n",
+			tracker->td->status, tracker->td->device, instance->name);
+	}
 }
 /**
