Index: uspace/drv/ehci-hcd/main.c
===================================================================
--- uspace/drv/ehci-hcd/main.c	(revision 275bf4564149c3cc7c77ddfb104ea8c6658f03b6)
+++ uspace/drv/ehci-hcd/main.c	(revision 0d3167ed5304742fe3bce78a67073ffdda0aa7c3)
@@ -97,4 +97,6 @@
  * @param[in] argv Cmdline argument vector (ignored).
  * @return Error code.
+ *
+ * Driver debug level is set here.
  */
 int main(int argc, char *argv[])
Index: uspace/drv/ehci-hcd/pci.c
===================================================================
--- uspace/drv/ehci-hcd/pci.c	(revision 275bf4564149c3cc7c77ddfb104ea8c6658f03b6)
+++ uspace/drv/ehci-hcd/pci.c	(revision 0d3167ed5304742fe3bce78a67073ffdda0aa7c3)
@@ -52,4 +52,7 @@
 #define HCC_PARAMS_EECP_MASK 0xff
 #define HCC_PARAMS_EECP_OFFSET 8
+
+#define CMD_OFFSET 0x0
+#define CONFIGFLAG_OFFSET 0x40
 
 #define USBCMD_RUN 1
@@ -258,5 +261,4 @@
 	}
 
-
 	/* Zero SMI enables in legacy control register.
 	 * It would prevent pre-OS code from interfering. */
@@ -288,8 +290,12 @@
 	/* Zero USBCMD register. */
 	volatile uint32_t *usbcmd =
-	 (uint32_t*)((uint8_t*)registers + operation_offset);
+	    (uint32_t*)((uint8_t*)registers + operation_offset + CMD_OFFSET);
+	volatile uint32_t *usbconfigured =
+	    (uint32_t*)((uint8_t*)registers + operation_offset
+	    + CONFIGFLAG_OFFSET);
 	usb_log_debug("USBCMD value: %x.\n", *usbcmd);
 	if (*usbcmd & USBCMD_RUN) {
 		*usbcmd = 0;
+		*usbconfigured = 0;
 		usb_log_info("EHCI turned off.\n");
 	} else {
