Index: uspace/lib/usbvirt/hub.h
===================================================================
--- uspace/lib/usbvirt/hub.h	(revision 1d1f8944ede1a0aa44224dfdbf374178bcb040a0)
+++ uspace/lib/usbvirt/hub.h	(revision e27595b02d72a0481e9c16c944a072b87ac5190a)
@@ -59,5 +59,5 @@
 } usbvirt_device_method_t;
 
-int usbvirt_connect(usbvirt_device_t *, const char *);
+int usbvirt_connect(usbvirt_device_t *);
 int usbvirt_connect_local(usbvirt_device_t *);
 int usbvirt_disconnect(usbvirt_device_t *dev);
Index: uspace/lib/usbvirt/main.c
===================================================================
--- uspace/lib/usbvirt/main.c	(revision 1d1f8944ede1a0aa44224dfdbf374178bcb040a0)
+++ uspace/lib/usbvirt/main.c	(revision e27595b02d72a0481e9c16c944a072b87ac5190a)
@@ -33,7 +33,5 @@
  * @brief Device registration with virtual USB framework.
  */
-#include <devmap.h>
-#include <fcntl.h>
-#include <vfs/vfs.h>
+#include <devman.h>
 #include <errno.h>
 #include <stdlib.h>
@@ -181,5 +179,5 @@
 		return;
 	}
-	
+
 	device_callback_connection(dev->device, iid, icall);
 }
@@ -187,5 +185,5 @@
 /** Create necessary phones for comunication with virtual HCD.
  * This function wraps following calls:
- * -# open <code>/dev/usb/<i>hcd_path</i></code> for reading
+ * -# open <code>/dev/devices/\\vhc for reading
  * -# access phone of file opened in previous step
  * -# create callback through just opened phone
@@ -202,5 +200,5 @@
  * @return EOK on success or error code from errno.h.
  */
-int usbvirt_connect(usbvirt_device_t *dev, const char *hcd_path)
+int usbvirt_connect(usbvirt_device_t *dev)
 {
 	virtual_device_t *virtual_device = find_device(dev);
@@ -209,22 +207,25 @@
 	}
 	
-	char dev_path[DEVMAP_NAME_MAXLEN + 1];
-	snprintf(dev_path, DEVMAP_NAME_MAXLEN,
-	    "/dev/%s/%s", NAMESPACE, hcd_path);
-	
-	int fd = open(dev_path, O_RDONLY);
-	if (fd < 0) {
-		return fd;
-	}
-	
-	int hcd_phone = fd_phone(fd);
+	const char *vhc_path = "/vhc";
+	int rc;
+	devman_handle_t handle;
+
+	rc = devman_device_get_handle(vhc_path, &handle, 0);
+	if (rc != EOK) {
+		printf("devman_device_get_handle() failed\n");
+		return rc;
+	}
+	
+	int hcd_phone = devman_device_connect(handle, 0);
 	
 	if (hcd_phone < 0) {
+		printf("devman_device_connect() failed\n");
 		return hcd_phone;
 	}
 	
 	ipcarg_t phonehash;
-	int rc = ipc_connect_to_me(hcd_phone, 0, 0, 0, &phonehash);
+	rc = ipc_connect_to_me(hcd_phone, 0, 0, 0, &phonehash);
 	if (rc != EOK) {
+		printf("ipc_connect_to_me() failed\n");
 		return rc;
 	}
