Index: uspace/lib/c/generic/async.c
===================================================================
--- uspace/lib/c/generic/async.c	(revision 16f97821cd585eaeae44e568bfb84c36d23e96cf)
+++ uspace/lib/c/generic/async.c	(revision ab34cc996f19066bcba82ddd7e2ec4967374ee4b)
@@ -1472,17 +1472,19 @@
 		return ENOENT;
 	
-	task_id_t task_id;
-	sysarg_t task_id_lo;
-	sysarg_t task_id_hi;
 	sysarg_t phone_hash;
-	int rc = async_req_3_5(exch, IPC_M_CONNECT_TO_ME, arg1, arg2, arg3,
-	    NULL, NULL, &task_id_lo, &task_id_hi, &phone_hash);
+	sysarg_t rc;
+
+	aid_t req;
+	ipc_call_t answer;
+	req = async_send_3(exch, IPC_M_CONNECT_TO_ME, arg1, arg2, arg3,
+	    &answer);
+	async_wait_for(req, &rc);
 	if (rc != EOK)
-		return rc;
-
-	task_id = (task_id_t) MERGE_LOUP32(task_id_lo, task_id_hi);
-	
+		return (int) rc;
+
+	phone_hash = IPC_GET_ARG5(answer);
+
 	if (client_receiver != NULL)
-		async_new_connection(task_id, phone_hash, 0, NULL,
+		async_new_connection(answer.in_task_id, phone_hash, 0, NULL,
 		    client_receiver, carg);
 	
Index: uspace/lib/c/generic/ipc.c
===================================================================
--- uspace/lib/c/generic/ipc.c	(revision 16f97821cd585eaeae44e568bfb84c36d23e96cf)
+++ uspace/lib/c/generic/ipc.c	(revision ab34cc996f19066bcba82ddd7e2ec4967374ee4b)
@@ -629,12 +629,11 @@
     task_id_t *task_id, sysarg_t *phonehash)
 {
-	sysarg_t task_id_lo = 0;
-	sysarg_t task_id_hi = 0;
-	int rc;
-
-	rc = ipc_call_sync_3_5(phoneid, IPC_M_CONNECT_TO_ME, arg1, arg2, arg3,
-	    NULL, NULL, &task_id_lo, &task_id_hi, phonehash);
-
-	*task_id = (task_id_t) MERGE_LOUP32(task_id_lo, task_id_hi);
+	ipc_call_t data;
+	int rc = __SYSCALL6(SYS_IPC_CALL_SYNC_FAST, phoneid,
+	    IPC_M_CONNECT_TO_ME, arg1, arg2, arg3, (sysarg_t) &data);
+	if (rc == EOK) {
+		*task_id = data.in_task_id;
+		*phonehash = IPC_GET_ARG5(data);
+	}	
 	return rc;
 }
