Index: uspace/drv/uhci-hcd/uhci_struct/link_pointer.h
===================================================================
--- uspace/drv/uhci-hcd/uhci_struct/link_pointer.h	(revision eedac04b1ec5629b46e56da9065680aaa6903052)
+++ uspace/drv/uhci-hcd/uhci_struct/link_pointer.h	(revision d3991b2cada019630369dce00f63d18bc2eebcc0)
@@ -49,4 +49,10 @@
 	((address & LINK_POINTER_ADDRESS_MASK) | LINK_POINTER_QUEUE_HEAD_FLAG)
 
+#define LINK_POINTER_TD(address) \
+	(address & LINK_POINTER_ADDRESS_MASK)
+
+#define LINK_POINTER_TERM \
+	((link_pointer_t)LINK_POINTER_TERMINATE_FLAG)
+
 #endif
 /**
Index: uspace/drv/uhci-hcd/uhci_struct/queue_head.h
===================================================================
--- uspace/drv/uhci-hcd/uhci_struct/queue_head.h	(revision eedac04b1ec5629b46e56da9065680aaa6903052)
+++ uspace/drv/uhci-hcd/uhci_struct/queue_head.h	(revision d3991b2cada019630369dce00f63d18bc2eebcc0)
@@ -72,8 +72,7 @@
 	/* Address is valid and not terminal */
 	if (pa && ((pa & LINK_POINTER_TERMINATE_FLAG) == 0)) {
-		instance->next = (pa & LINK_POINTER_ADDRESS_MASK)
-		    | LINK_POINTER_QUEUE_HEAD_FLAG;
+		instance->next = LINK_POINTER_QH(pa);
 	} else {
-		instance->next = 0 | LINK_POINTER_TERMINATE_FLAG;
+		instance->next = LINK_POINTER_TERM;
 	}
 }
@@ -91,8 +90,7 @@
 	/* Address is valid and not terminal */
 	if (pa && ((pa & LINK_POINTER_TERMINATE_FLAG) == 0)) {
-		instance->element = (pa & LINK_POINTER_ADDRESS_MASK)
-		    | LINK_POINTER_QUEUE_HEAD_FLAG;
+		instance->element = LINK_POINTER_QH(pa);
 	} else {
-		instance->element = 0 | LINK_POINTER_TERMINATE_FLAG;
+		instance->element = LINK_POINTER_TERM;
 	}
 }
@@ -109,7 +107,7 @@
 {
 	if (pa && ((pa & LINK_POINTER_TERMINATE_FLAG) == 0)) {
-		instance->element = (pa & LINK_POINTER_ADDRESS_MASK);
+		instance->element = LINK_POINTER_TD(pa);
 	} else {
-		instance->element = 0 | LINK_POINTER_TERMINATE_FLAG;
+		instance->element = LINK_POINTER_TERM;
 	}
 }
