Index: uspace/srv/bd/ata_bd/ata_bd.c
===================================================================
--- uspace/srv/bd/ata_bd/ata_bd.c	(revision 6d8455d96fd6cd160666aef7ea55519828d14f42)
+++ uspace/srv/bd/ata_bd/ata_bd.c	(revision f3025861da728fb4754f9d1cdcfeda5675ac98f3)
@@ -245,6 +245,7 @@
 	void *vaddr;
 	int rc;
-
-	rc = loc_server_register(NAME, ata_bd_connection);
+	
+	async_set_client_connection(ata_bd_connection);
+	rc = loc_server_register(NAME);
 	if (rc < 0) {
 		printf(NAME ": Unable to register driver.\n");
Index: uspace/srv/bd/file_bd/file_bd.c
===================================================================
--- uspace/srv/bd/file_bd/file_bd.c	(revision 6d8455d96fd6cd160666aef7ea55519828d14f42)
+++ uspace/srv/bd/file_bd/file_bd.c	(revision f3025861da728fb4754f9d1cdcfeda5675ac98f3)
@@ -141,6 +141,7 @@
 	int rc;
 	long img_size;
-
-	rc = loc_server_register(NAME, file_bd_connection);
+	
+	async_set_client_connection(file_bd_connection);
+	rc = loc_server_register(NAME);
 	if (rc < 0) {
 		printf(NAME ": Unable to register driver.\n");
Index: uspace/srv/bd/gxe_bd/gxe_bd.c
===================================================================
--- uspace/srv/bd/gxe_bd/gxe_bd.c	(revision 6d8455d96fd6cd160666aef7ea55519828d14f42)
+++ uspace/srv/bd/gxe_bd/gxe_bd.c	(revision f3025861da728fb4754f9d1cdcfeda5675ac98f3)
@@ -125,6 +125,7 @@
 	int rc, i;
 	char name[16];
-
-	rc = loc_server_register(NAME, gxe_bd_connection);
+	
+	async_set_client_connection(gxe_bd_connection);
+	rc = loc_server_register(NAME);
 	if (rc < 0) {
 		printf(NAME ": Unable to register driver.\n");
Index: uspace/srv/bd/part/guid_part/guid_part.c
===================================================================
--- uspace/srv/bd/part/guid_part/guid_part.c	(revision 6d8455d96fd6cd160666aef7ea55519828d14f42)
+++ uspace/srv/bd/part/guid_part/guid_part.c	(revision f3025861da728fb4754f9d1cdcfeda5675ac98f3)
@@ -164,5 +164,6 @@
 
 	/* Register server with location service. */
-	rc = loc_server_register(NAME, gpt_connection);
+	async_set_client_connection(gpt_connection);
+	rc = loc_server_register(NAME);
 	if (rc != EOK) {
 		printf(NAME ": Unable to register server.\n");
Index: uspace/srv/bd/part/mbr_part/mbr_part.c
===================================================================
--- uspace/srv/bd/part/mbr_part/mbr_part.c	(revision 6d8455d96fd6cd160666aef7ea55519828d14f42)
+++ uspace/srv/bd/part/mbr_part/mbr_part.c	(revision f3025861da728fb4754f9d1cdcfeda5675ac98f3)
@@ -214,5 +214,6 @@
 
 	/* Register server with location service. */
-	rc = loc_server_register(NAME, mbr_connection);
+	async_set_client_connection(mbr_connection);
+	rc = loc_server_register(NAME);
 	if (rc != EOK) {
 		printf(NAME ": Unable to register server.\n");
Index: uspace/srv/bd/rd/rd.c
===================================================================
--- uspace/srv/bd/rd/rd.c	(revision 6d8455d96fd6cd160666aef7ea55519828d14f42)
+++ uspace/srv/bd/rd/rd.c	(revision f3025861da728fb4754f9d1cdcfeda5675ac98f3)
@@ -235,5 +235,6 @@
 	    (void *) addr_phys, size);
 	
-	ret = loc_server_register(NAME, rd_connection);
+	async_set_client_connection(rd_connection);
+	ret = loc_server_register(NAME);
 	if (ret < 0) {
 		printf("%s: Unable to register driver (%d)\n", NAME, ret);
Index: uspace/srv/devman/main.c
===================================================================
--- uspace/srv/devman/main.c	(revision 6d8455d96fd6cd160666aef7ea55519828d14f42)
+++ uspace/srv/devman/main.c	(revision f3025861da728fb4754f9d1cdcfeda5675ac98f3)
@@ -1309,10 +1309,11 @@
 
 	/*
-	 * !!! devman_connection ... as the device manager is not a real loc
-	 * driver (it uses a completely different ipc protocol than an ordinary
-	 * loc driver) forwarding a connection from client to the devman by
-	 * location service would not work.
+	 * Caution: As the device manager is not a real loc
+	 * driver (it uses a completely different IPC protocol
+	 * than an ordinary loc driver), forwarding a connection
+	 * from client to the devman by location service will
+	 * not work.
 	 */
-	loc_server_register(NAME, devman_connection);
+	loc_server_register(NAME);
 	
 	return true;
@@ -1325,9 +1326,4 @@
 	if (log_init(NAME, LVL_WARN) != EOK) {
 		printf(NAME ": Error initializing logging subsystem.\n");
-		return -1;
-	}
-
-	if (!devman_init()) {
-		log_msg(LVL_ERROR, "Error while initializing service.");
 		return -1;
 	}
@@ -1338,4 +1334,9 @@
 	async_set_client_connection(devman_connection);
 
+	if (!devman_init()) {
+		log_msg(LVL_ERROR, "Error while initializing service.");
+		return -1;
+	}
+
 	/* Register device manager at naming service. */
 	if (service_register(SERVICE_DEVMAN) != EOK) {
Index: uspace/srv/hid/console/console.c
===================================================================
--- uspace/srv/hid/console/console.c	(revision 6d8455d96fd6cd160666aef7ea55519828d14f42)
+++ uspace/srv/hid/console/console.c	(revision f3025861da728fb4754f9d1cdcfeda5675ac98f3)
@@ -825,5 +825,6 @@
 	
 	/* Register server */
-	int rc = loc_server_register(NAME, client_connection);
+	async_set_client_connection(client_connection);
+	int rc = loc_server_register(NAME);
 	if (rc < 0) {
 		printf("%s: Unable to register server (%s)\n", NAME,
Index: uspace/srv/hid/fb/fb.c
===================================================================
--- uspace/srv/hid/fb/fb.c	(revision 6d8455d96fd6cd160666aef7ea55519828d14f42)
+++ uspace/srv/hid/fb/fb.c	(revision f3025861da728fb4754f9d1cdcfeda5675ac98f3)
@@ -987,5 +987,6 @@
 	
 	/* Register server */
-	int rc = loc_server_register(NAME, client_connection);
+	async_set_client_connection(client_connection);
+	int rc = loc_server_register(NAME);
 	if (rc != EOK) {
 		printf("%s: Unable to register driver (%d)\n", NAME, rc);
Index: uspace/srv/hid/input/generic/input.c
===================================================================
--- uspace/srv/hid/input/generic/input.c	(revision 6d8455d96fd6cd160666aef7ea55519828d14f42)
+++ uspace/srv/hid/input/generic/input.c	(revision f3025861da728fb4754f9d1cdcfeda5675ac98f3)
@@ -649,5 +649,6 @@
 	
 	/* Register driver */
-	int rc = loc_server_register(NAME, client_connection);
+	async_set_client_connection(client_connection);
+	int rc = loc_server_register(NAME);
 	if (rc < 0) {
 		printf("%s: Unable to register server (%d)\n", NAME, rc);
Index: uspace/srv/hid/s3c24xx_ts/s3c24xx_ts.c
===================================================================
--- uspace/srv/hid/s3c24xx_ts/s3c24xx_ts.c	(revision 6d8455d96fd6cd160666aef7ea55519828d14f42)
+++ uspace/srv/hid/s3c24xx_ts/s3c24xx_ts.c	(revision f3025861da728fb4754f9d1cdcfeda5675ac98f3)
@@ -85,6 +85,7 @@
 
 	printf(NAME ": S3C24xx touchscreen driver\n");
-
-	rc = loc_server_register(NAME, s3c24xx_ts_connection);
+	
+	async_set_client_connection(s3c24xx_ts_connection);
+	rc = loc_server_register(NAME);
 	if (rc < 0) {
 		printf(NAME ": Unable to register driver.\n");
Index: uspace/srv/hw/bus/cuda_adb/cuda_adb.c
===================================================================
--- uspace/srv/hw/bus/cuda_adb/cuda_adb.c	(revision 6d8455d96fd6cd160666aef7ea55519828d14f42)
+++ uspace/srv/hw/bus/cuda_adb/cuda_adb.c	(revision f3025861da728fb4754f9d1cdcfeda5675ac98f3)
@@ -154,5 +154,6 @@
 	}
 
-	rc = loc_server_register(NAME, cuda_connection);
+	async_set_client_connection(cuda_connection);
+	rc = loc_server_register(NAME);
 	if (rc < 0) {
 		printf(NAME ": Unable to register server.\n");
Index: uspace/srv/hw/char/s3c24xx_uart/s3c24xx_uart.c
===================================================================
--- uspace/srv/hw/char/s3c24xx_uart/s3c24xx_uart.c	(revision 6d8455d96fd6cd160666aef7ea55519828d14f42)
+++ uspace/srv/hw/char/s3c24xx_uart/s3c24xx_uart.c	(revision f3025861da728fb4754f9d1cdcfeda5675ac98f3)
@@ -79,5 +79,6 @@
 	printf(NAME ": S3C24xx on-chip UART driver\n");
 
-	rc = loc_server_register(NAME, s3c24xx_uart_connection);
+	async_set_client_connection(s3c24xx_uart_connection);
+	rc = loc_server_register(NAME);
 	if (rc < 0) {
 		printf(NAME ": Unable to register server.\n");
