Index: uspace/srv/devman/devman.h
===================================================================
--- uspace/srv/devman/devman.h	(revision 0c3666da780bbd04fc399decd9d650c7ea897384)
+++ uspace/srv/devman/devman.h	(revision 924c75e15c9b616be210fa9c2c5f37204c6c2feb)
@@ -201,4 +201,5 @@
 	list_initialize(&drv->match_ids.ids);
 	list_initialize(&drv->devices);
+	fibril_mutex_initialize(&drv->driver_mutex);	
 }
 
Index: uspace/srv/devman/main.c
===================================================================
--- uspace/srv/devman/main.c	(revision 0c3666da780bbd04fc399decd9d650c7ea897384)
+++ uspace/srv/devman/main.c	(revision 924c75e15c9b616be210fa9c2c5f37204c6c2feb)
@@ -63,5 +63,5 @@
  *
  */
-static void devman_connection(ipc_callid_t iid, ipc_call_t *icall)
+static void devman_connection_driver(ipc_callid_t iid, ipc_call_t *icall)
 {
 	ipc_callid_t callid;
@@ -85,4 +85,27 @@
 			break;
 		}
+	}
+}
+
+/** Function for handling connections to device manager.
+ *
+ */
+static void devman_connection(ipc_callid_t iid, ipc_call_t *icall)
+{
+	// Select interface 
+	switch ((ipcarg_t) (IPC_GET_ARG1(*icall))) {
+	case DEVMAN_DRIVER:
+		devman_connection_driver(iid, icall);
+		break;
+	/*case DEVMAN_CLIENT:
+		devmap_connection_client(iid, icall);
+		break;
+	case DEVMAN_CONNECT_TO_DEVICE:
+		// Connect client to selected device
+		devmap_forward(iid, icall);
+		break;*/
+	default:
+		/* No such interface */
+		ipc_answer_0(iid, ENOENT);
 	}
 }
