Index: uspace/srv/devman/devman.c
===================================================================
--- uspace/srv/devman/devman.c	(revision a78fa2a9d35d4b71830ba7c047cb36f2e14a33c7)
+++ uspace/srv/devman/devman.c	(revision df747b9ce545e1eda723dbd969461898e697c40b)
@@ -519,10 +519,12 @@
 	async_wait_for(req, &rc);
 	switch(rc) {
-		// TODO inspect return value to find out whether the device was successfully probed and added
 	case EOK:
+		node->state = DEVICE_USABLE;
+		break;
 	case ENOENT:
-		
+		node->state = DEVICE_NOT_PRESENT;
 		break;
-		
+	default:
+		node->state = DEVICE_INVALID;		
 	}
 	
Index: uspace/srv/devman/devman.h
===================================================================
--- uspace/srv/devman/devman.h	(revision a78fa2a9d35d4b71830ba7c047cb36f2e14a33c7)
+++ uspace/srv/devman/devman.h	(revision df747b9ce545e1eda723dbd969461898e697c40b)
@@ -93,4 +93,12 @@
 } driver_list_t;
 
+/** The state of the device. */
+typedef enum {
+	DEVICE_NOT_INITIALIZED = 0,
+	DEVICE_USABLE,
+	DEVICE_NOT_PRESENT,
+	DEVICE_INVALID
+} device_state_t;
+
 /** Representation of a node in the device tree.*/
 struct node {
@@ -113,4 +121,6 @@
 	/** Driver of this device.*/
 	driver_t *drv;
+	/** The state of the device. */
+	device_state_t state;
 	/** Pointer to the previous and next device in the list of devices
 	    owned by one driver */
Index: uspace/srv/devman/main.c
===================================================================
--- uspace/srv/devman/main.c	(revision a78fa2a9d35d4b71830ba7c047cb36f2e14a33c7)
+++ uspace/srv/devman/main.c	(revision df747b9ce545e1eda723dbd969461898e697c40b)
@@ -309,10 +309,11 @@
 			driver = dev->parent->drv;		
 		}
-	} else {
+	} else if (DEVICE_USABLE == dev->state) {
 		driver = dev->drv;		
+		assert(NULL != driver);
 	}
 	
 	if (NULL == driver) {	
-		printf(NAME ": devman_forward error - no driver to connect to.\n", handle);
+		printf(NAME ": devman_forward error - the device is not in usable state.\n", handle);
 		ipc_answer_0(iid, ENOENT);
 		return;	
@@ -331,6 +332,5 @@
 		return;
 	}
-	printf(NAME ": devman_forward: forward connection to device %s to driver %s with phone %d.\n", 
-		dev->pathname, driver->name, driver->phone);
+	printf(NAME ": devman_forward: forward connection to device %s to driver %s.\n", dev->pathname, driver->name);
 	ipc_forward_fast(iid, driver->phone, method, dev->handle, 0, IPC_FF_NONE);	
 }
