Index: uspace/drv/root/root.c
===================================================================
--- uspace/drv/root/root.c	(revision ad79d8088692a194ad89ca818cbb53f029b5c464)
+++ uspace/drv/root/root.c	(revision 9f6c5ef09aad0b78133963d155701a50a4570836)
@@ -87,5 +87,6 @@
 
 	int res = child_device_register_wrapper(parent, VIRTUAL_DEVICE_NAME,
-	    VIRTUAL_DEVICE_MATCH_ID, VIRTUAL_DEVICE_MATCH_SCORE);
+	    VIRTUAL_DEVICE_MATCH_ID, VIRTUAL_DEVICE_MATCH_SCORE,
+	    NULL);
 
 	return res;
@@ -104,5 +105,6 @@
 	
 	int res = child_device_register_wrapper(parent, PLATFORM_DEVICE_NAME,
-	    PLATFORM_DEVICE_MATCH_ID, PLATFORM_DEVICE_MATCH_SCORE);
+	    PLATFORM_DEVICE_MATCH_ID, PLATFORM_DEVICE_MATCH_SCORE,
+	    NULL);
 
 	return res;
Index: uspace/drv/rootvirt/rootvirt.c
===================================================================
--- uspace/drv/rootvirt/rootvirt.c	(revision ad79d8088692a194ad89ca818cbb53f029b5c464)
+++ uspace/drv/rootvirt/rootvirt.c	(revision 9f6c5ef09aad0b78133963d155701a50a4570836)
@@ -84,5 +84,5 @@
 
 	int rc = child_device_register_wrapper(parent, virt_dev->name,
-	    virt_dev->match_id, 10);
+	    virt_dev->match_id, 10, NULL);
 
 	if (rc == EOK) {
Index: uspace/drv/test1/test1.c
===================================================================
--- uspace/drv/test1/test1.c	(revision ad79d8088692a194ad89ca818cbb53f029b5c464)
+++ uspace/drv/test1/test1.c	(revision 9f6c5ef09aad0b78133963d155701a50a4570836)
@@ -64,5 +64,5 @@
 
 	int rc = child_device_register_wrapper(parent, name,
-	    match_id, match_score);
+	    match_id, match_score, NULL);
 
 	if (rc == EOK) {
Index: uspace/drv/test2/test2.c
===================================================================
--- uspace/drv/test2/test2.c	(revision ad79d8088692a194ad89ca818cbb53f029b5c464)
+++ uspace/drv/test2/test2.c	(revision 9f6c5ef09aad0b78133963d155701a50a4570836)
@@ -64,5 +64,5 @@
 
 	int rc = child_device_register_wrapper(parent, name,
-	    match_id, match_score);
+	    match_id, match_score, NULL);
 
 	if (rc == EOK) {
Index: uspace/lib/drv/generic/driver.c
===================================================================
--- uspace/lib/drv/generic/driver.c	(revision ad79d8088692a194ad89ca818cbb53f029b5c464)
+++ uspace/lib/drv/generic/driver.c	(revision 9f6c5ef09aad0b78133963d155701a50a4570836)
@@ -390,5 +390,6 @@
  */
 int child_device_register_wrapper(device_t *parent, const char *child_name,
-    const char *child_match_id, int child_match_score)
+    const char *child_match_id, int child_match_score,
+    devman_handle_t *child_handle)
 {
 	device_t *child = NULL;
@@ -418,4 +419,7 @@
 		goto failure;
 
+	if (child_handle != NULL) {
+		*child_handle = child->handle;
+	}
 	return EOK;
 
Index: uspace/lib/drv/include/driver.h
===================================================================
--- uspace/lib/drv/include/driver.h	(revision ad79d8088692a194ad89ca818cbb53f029b5c464)
+++ uspace/lib/drv/include/driver.h	(revision 9f6c5ef09aad0b78133963d155701a50a4570836)
@@ -199,5 +199,6 @@
 
 int child_device_register(device_t *, device_t *);
-int child_device_register_wrapper(device_t *, const char *, const char *, int);
+int child_device_register_wrapper(device_t *, const char *, const char *, int,
+    devman_handle_t *);
 
 
