Index: uspace/drv/uhci/uhci_struct/transfer_descriptor.c
===================================================================
--- uspace/drv/uhci/uhci_struct/transfer_descriptor.c	(revision 54229dba5366fe0bafd926b70d9cb9abcc246277)
+++ uspace/drv/uhci/uhci_struct/transfer_descriptor.c	(revision b6120d90abddb6ecb11fc305e292d815fe7402ac)
@@ -14,4 +14,6 @@
 	  | ((error_count & TD_STATUS_ERROR_COUNT_MASK) << TD_STATUS_ERROR_COUNT_POS)
 	  | TD_STATUS_ERROR_ACTIVE;
+
+	uhci_print_verbose("Creating status field: %x.\n", instance->status);
 
 	instance->device = 0
Index: uspace/drv/uhci/uhci_struct/transfer_descriptor.h
===================================================================
--- uspace/drv/uhci/uhci_struct/transfer_descriptor.h	(revision 54229dba5366fe0bafd926b70d9cb9abcc246277)
+++ uspace/drv/uhci/uhci_struct/transfer_descriptor.h	(revision b6120d90abddb6ecb11fc305e292d815fe7402ac)
@@ -46,10 +46,10 @@
 	link_pointer_t next;
 
-	uint32_t status;
+	volatile uint32_t status;
 
 #define TD_STATUS_RESERVED_MASK 0xc000f800
 #define TD_STATUS_SPD_FLAG ( 1 << 29 )
 #define TD_STATUS_ERROR_COUNT_POS ( 27 )
-#define TD_STATUS_ERROR_COUNT_MASK ( 0x11 )
+#define TD_STATUS_ERROR_COUNT_MASK ( 0x3 )
 #define TD_STATUS_ERROR_COUNT_DEFAULT 3
 #define TD_STATUS_LOW_SPEED_FLAG ( 1 << 26 )
@@ -71,5 +71,5 @@
 #define TD_STATUS_ACTLEN_MASK 0x7ff
 
-	uint32_t device;
+	volatile uint32_t device;
 
 #define TD_DEVICE_MAXLEN_POS 21
@@ -84,5 +84,5 @@
 #define TD_DEVICE_PID_MASK ( 0xff )
 
-	uint32_t buffer_ptr;
+	volatile uint32_t buffer_ptr;
 
 	/* there is 16 bytes of data available here
