Index: uspace/drv/bus/usb/uhci/main.c
===================================================================
--- uspace/drv/bus/usb/uhci/main.c	(revision 8b8c164397f69eeebe6f33b2ef55e23bfa483828)
+++ uspace/drv/bus/usb/uhci/main.c	(revision 58ac3ec7e750d4732f544c1c153056f657443a75)
@@ -165,5 +165,5 @@
 	printf(NAME ": HelenOS UHCI driver.\n");
 	log_init(NAME);
-	logctl_set_log_level(NAME, LVL_NOTE);
+	logctl_set_log_level(NAME, LVL_DEBUG2);
 	return ddf_driver_main(&uhci_driver);
 }
Index: uspace/drv/bus/usb/uhci/transfer_list.c
===================================================================
--- uspace/drv/bus/usb/uhci/transfer_list.c	(revision 8b8c164397f69eeebe6f33b2ef55e23bfa483828)
+++ uspace/drv/bus/usb/uhci/transfer_list.c	(revision 58ac3ec7e750d4732f544c1c153056f657443a75)
@@ -116,5 +116,5 @@
 	assert(uhci_batch);
 	usb_log_debug2("Batch %p adding to queue %s.\n",
-	    uhci_batch->usb_batch, instance->name);
+	    uhci_batch, instance->name);
 
 	fibril_mutex_lock(&instance->guard);
@@ -145,6 +145,6 @@
 
 	usb_log_debug2("Batch %p " USB_TRANSFER_BATCH_FMT
-	    " scheduled in queue %s.\n", uhci_batch->usb_batch,
-	    USB_TRANSFER_BATCH_ARGS(*uhci_batch->usb_batch), instance->name);
+	    " scheduled in queue %s.\n", uhci_batch,
+	    USB_TRANSFER_BATCH_ARGS(uhci_batch->base), instance->name);
 	fibril_mutex_unlock(&instance->guard);
 }
@@ -211,5 +211,5 @@
 
 	usb_log_debug2("Batch %p removing from queue %s.\n",
-	    uhci_batch->usb_batch, instance->name);
+	    uhci_batch, instance->name);
 
 	/* Assume I'm the first */
@@ -233,6 +233,6 @@
 	list_remove(&uhci_batch->link);
 	usb_log_debug2("Batch %p " USB_TRANSFER_BATCH_FMT " removed (%s) "
-	    "from %s, next: %x.\n", uhci_batch->usb_batch,
-	    USB_TRANSFER_BATCH_ARGS(*uhci_batch->usb_batch),
+	    "from %s, next: %x.\n", uhci_batch,
+	    USB_TRANSFER_BATCH_ARGS(uhci_batch->base),
 	    qpos, instance->name, uhci_batch->qh->next);
 }
Index: uspace/drv/bus/usb/uhci/uhci_batch.c
===================================================================
--- uspace/drv/bus/usb/uhci/uhci_batch.c	(revision 8b8c164397f69eeebe6f33b2ef55e23bfa483828)
+++ uspace/drv/bus/usb/uhci/uhci_batch.c	(revision 58ac3ec7e750d4732f544c1c153056f657443a75)
@@ -159,6 +159,5 @@
 	usb_log_debug2("Batch %p " USB_TRANSFER_BATCH_FMT
 	    " checking %zu transfer(s) for completion.\n",
-	    uhci_batch->usb_batch,
-	    USB_TRANSFER_BATCH_ARGS(*uhci_batch->usb_batch),
+	    uhci_batch, USB_TRANSFER_BATCH_ARGS(uhci_batch->base),
 	    uhci_batch->td_count);
 	uhci_batch->base.transfered_size = 0;
@@ -174,5 +173,5 @@
 
 			usb_log_debug("Batch %p found error TD(%zu->%p):%"
-			    PRIx32 ".\n", uhci_batch->usb_batch, i,
+			    PRIx32 ".\n", uhci_batch, i,
 			    &uhci_batch->tds[i], uhci_batch->tds[i].status);
 			td_print_status(&uhci_batch->tds[i]);
@@ -250,8 +249,8 @@
 	usb_log_debug2(
 	    "Batch %p %s %s " USB_TRANSFER_BATCH_FMT " initialized.\n", \
-	    uhci_batch->usb_batch,
+	    uhci_batch,
 	    usb_str_transfer_type(uhci_batch->base.ep->transfer_type),
 	    usb_str_direction(uhci_batch->base.ep->direction),
-	    USB_TRANSFER_BATCH_ARGS(*uhci_batch->usb_batch));
+	    USB_TRANSFER_BATCH_ARGS(uhci_batch->base));
 }
 
Index: uspace/drv/bus/usb/uhci/uhci_batch.h
===================================================================
--- uspace/drv/bus/usb/uhci/uhci_batch.h	(revision 8b8c164397f69eeebe6f33b2ef55e23bfa483828)
+++ uspace/drv/bus/usb/uhci/uhci_batch.h	(revision 58ac3ec7e750d4732f544c1c153056f657443a75)
@@ -63,6 +63,4 @@
 	/** Data buffer, must be accessible by the UHCI hw */
 	void *device_buffer;
-	/** Generic transfer data */
-	usb_transfer_batch_t *usb_batch;
 	/** List element */
 	link_t link;
@@ -95,5 +93,4 @@
 {
 	assert(uhci_batch);
-	assert(uhci_batch->usb_batch);
 	return uhci_transfer_batch_setup_buffer(uhci_batch) +
 	    (uhci_batch->base.ep->transfer_type == USB_TRANSFER_CONTROL ? USB_SETUP_PACKET_SIZE : 0);
@@ -108,7 +105,6 @@
 {
 	assert(uhci_batch);
-	assert(uhci_batch->usb_batch);
-	uhci_batch->usb_batch->error = EINTR;
-	uhci_batch->usb_batch->transfered_size = 0;
+	uhci_batch->base.error = EINTR;
+	uhci_batch->base.transfered_size = 0;
 	usb_transfer_batch_finish(&uhci_batch->base);
 }
Index: uspace/lib/usbhost/src/usb2_bus.c
===================================================================
--- uspace/lib/usbhost/src/usb2_bus.c	(revision 8b8c164397f69eeebe6f33b2ef55e23bfa483828)
+++ uspace/lib/usbhost/src/usb2_bus.c	(revision 58ac3ec7e750d4732f544c1c153056f657443a75)
@@ -109,4 +109,7 @@
 	int err;
 
+	/* The default address is currently reserved for this device */
+	dev->address = USB_ADDRESS_DEFAULT;
+
 	/** Reserve address early, we want pretty log messages */
 	usb_address_t address;
