Index: uspace/srv/hid/adb_mouse/adb_dev.c
===================================================================
--- uspace/srv/hid/adb_mouse/adb_dev.c	(revision ffa2c8ef45390c01f3f4be4827bcd41c32f7951c)
+++ uspace/srv/hid/adb_mouse/adb_dev.c	(revision 4a4c8bcf0ce34cbf901b7d7d1d02ef84f5b04d48)
@@ -39,4 +39,9 @@
 #include <fcntl.h>
 #include <errno.h>
+#include <devmap.h>
+#include <devmap_obsolete.h>
+#include <async.h>
+#include <async_obsolete.h>
+#include <kernel/ipc/ipc_methods.h>
 
 #include "adb_mouse.h"
@@ -45,27 +50,23 @@
 static void adb_dev_events(ipc_callid_t iid, ipc_call_t *icall);
 
-static int dev_phone;
-
 int adb_dev_init(void)
 {
-	const char *input = "/dev/adb/mouse";
-	int input_fd;
-
-	printf(NAME ": open %s\n", input);
-
-	input_fd = open(input, O_RDONLY);
-	if (input_fd < 0) {
-		printf(NAME ": Failed opening %s (%d)\n", input, input_fd);
-		return false;
+	devmap_handle_t handle;
+	int rc = devmap_device_get_handle("adb/mouse", &handle,
+	    IPC_FLAG_BLOCKING);
+	
+	if (rc != EOK) {
+		printf("%s: Failed resolving ADB\n", NAME);
+		return rc;
 	}
-
-	dev_phone = fd_phone(input_fd);
+	
+	int dev_phone = devmap_obsolete_device_connect(handle, IPC_FLAG_BLOCKING);
 	if (dev_phone < 0) {
-		printf(NAME ": Failed to connect to device\n");
-		return false;
+		printf("%s: Failed connecting to ADB\n", NAME);
+		return ENOENT;
 	}
-
+	
 	/* NB: The callback connection is slotted for removal */
-	if (async_connect_to_me(dev_phone, 0, 0, 0, adb_dev_events) != 0) {
+	if (async_obsolete_connect_to_me(dev_phone, 0, 0, 0, adb_dev_events) != 0) {
 		printf(NAME ": Failed to create callback from device\n");
 		return false;
@@ -84,9 +85,11 @@
 
 		int retval;
+		
+		if (!IPC_GET_IMETHOD(call)) {
+			/* TODO: Handle hangup */
+			return;
+		}
 
 		switch (IPC_GET_IMETHOD(call)) {
-		case IPC_M_PHONE_HUNGUP:
-			/* TODO: Handle hangup */
-			return;
 		case IPC_FIRST_USER_METHOD:
 			mouse_handle_data(IPC_GET_ARG1(call));
Index: uspace/srv/hid/adb_mouse/adb_mouse.c
===================================================================
--- uspace/srv/hid/adb_mouse/adb_mouse.c	(revision ffa2c8ef45390c01f3f4be4827bcd41c32f7951c)
+++ uspace/srv/hid/adb_mouse/adb_mouse.c	(revision 4a4c8bcf0ce34cbf901b7d7d1d02ef84f5b04d48)
@@ -43,9 +43,12 @@
 #include <stdlib.h>
 #include <async.h>
+#include <async_obsolete.h>
 #include <errno.h>
 #include <devmap.h>
-
 #include "adb_mouse.h"
 #include "adb_dev.h"
+
+// FIXME: remove this header
+#include <kernel/ipc/ipc_methods.h>
 
 static void client_connection(ipc_callid_t iid, ipc_call_t *icall);
@@ -101,8 +104,8 @@
 	while (1) {
 		callid = async_get_call(&call);
-		switch (IPC_GET_IMETHOD(call)) {
-		case IPC_M_PHONE_HUNGUP:
+		
+		if (!IPC_GET_IMETHOD(call)) {
 			if (client_phone != -1) {
-				async_hangup(client_phone);
+				async_obsolete_hangup(client_phone);
 				client_phone = -1;
 			}
@@ -110,4 +113,7 @@
 			async_answer_0(callid, EOK);
 			return;
+		}
+		
+		switch (IPC_GET_IMETHOD(call)) {
 		case IPC_M_CONNECT_TO_ME:
 			if (client_phone != -1) {
@@ -158,5 +164,5 @@
 {
 	if (client_phone != -1) {
-		async_msg_2(client_phone, MEVENT_BUTTON, button, press);
+		async_obsolete_msg_2(client_phone, MEVENT_BUTTON, button, press);
 	}
 }
@@ -165,5 +171,5 @@
 {
 	if (client_phone != -1)
-		async_msg_2(client_phone, MEVENT_MOVE, dx, dy);
+		async_obsolete_msg_2(client_phone, MEVENT_MOVE, dx, dy);
 }
 
