Index: uspace/lib/c/generic/async.c
===================================================================
--- uspace/lib/c/generic/async.c	(revision 11bb813d918c589244ca53f1bbe7b347f1b8ed3f)
+++ uspace/lib/c/generic/async.c	(revision 3c22f7021df532f9625f32db5da18694b800e183)
@@ -139,4 +139,6 @@
 	link_t link;
 	
+	/** Incoming client task hash. */
+	sysarg_t in_task_hash;
 	/** Incoming phone hash. */
 	sysarg_t in_phone_hash;
@@ -517,4 +519,5 @@
  * particular fibrils.
  *
+ * @param in_task_hash  Identification of the incoming connection.
  * @param in_phone_hash Identification of the incoming connection.
  * @param callid        Hash of the opening IPC_M_CONNECT_ME_TO call.
@@ -529,6 +532,7 @@
  *
  */
-fid_t async_new_connection(sysarg_t in_phone_hash, ipc_callid_t callid,
-    ipc_call_t *call, void (*cfibril)(ipc_callid_t, ipc_call_t *))
+fid_t async_new_connection(sysarg_t in_task_hash, sysarg_t in_phone_hash,
+    ipc_callid_t callid, ipc_call_t *call,
+    void (*cfibril)(ipc_callid_t, ipc_call_t *))
 {
 	connection_t *conn = malloc(sizeof(*conn));
@@ -539,4 +543,5 @@
 	}
 	
+	conn->in_task_hash = in_task_hash;
 	conn->in_phone_hash = in_phone_hash;
 	list_initialize(&conn->msg_queue);
@@ -592,6 +597,6 @@
 	case IPC_M_CONNECT_ME_TO:
 		/* Open new connection with fibril etc. */
-		async_new_connection(IPC_GET_ARG5(*call), callid, call,
-		    client_connection);
+		async_new_connection(call->in_task_hash, IPC_GET_ARG5(*call),
+		    callid, call, client_connection);
 		goto out;
 	}
Index: uspace/lib/c/generic/net/modules.c
===================================================================
--- uspace/lib/c/generic/net/modules.c	(revision 11bb813d918c589244ca53f1bbe7b347f1b8ed3f)
+++ uspace/lib/c/generic/net/modules.c	(revision 3c22f7021df532f9625f32db5da18694b800e183)
@@ -143,7 +143,8 @@
 	if (phone >= 0) {
 		/* Request the bidirectional connection */
+		sysarg_t taskhash;
 		sysarg_t phonehash;
 		
-		rc = ipc_connect_to_me(phone, arg1, arg2, arg3, NULL,
+		rc = ipc_connect_to_me(phone, arg1, arg2, arg3, &taskhash,
 		    &phonehash);
 		if (rc != EOK) {
@@ -151,5 +152,6 @@
 			return rc;
 		}
-		async_new_connection(phonehash, 0, NULL, client_receiver);
+		async_new_connection(taskhash, phonehash, 0, NULL,
+		    client_receiver);
 	}
 	
Index: uspace/lib/c/include/async.h
===================================================================
--- uspace/lib/c/include/async.h	(revision 11bb813d918c589244ca53f1bbe7b347f1b8ed3f)
+++ uspace/lib/c/include/async.h	(revision 3c22f7021df532f9625f32db5da18694b800e183)
@@ -92,6 +92,6 @@
 extern int async_wait_timeout(aid_t, sysarg_t *, suseconds_t);
 
-extern fid_t async_new_connection(sysarg_t, ipc_callid_t, ipc_call_t *,
-    void (*)(ipc_callid_t, ipc_call_t *));
+extern fid_t async_new_connection(sysarg_t, sysarg_t, ipc_callid_t,
+    ipc_call_t *, void (*)(ipc_callid_t, ipc_call_t *));
 extern void async_usleep(suseconds_t);
 extern void async_create_manager(void);
Index: uspace/lib/c/include/ipc/ipc.h
===================================================================
--- uspace/lib/c/include/ipc/ipc.h	(revision 11bb813d918c589244ca53f1bbe7b347f1b8ed3f)
+++ uspace/lib/c/include/ipc/ipc.h	(revision 3c22f7021df532f9625f32db5da18694b800e183)
@@ -46,6 +46,6 @@
 typedef struct {
 	sysarg_t args[IPC_CALL_LEN];
+	sysarg_t in_task_hash;
 	sysarg_t in_phone_hash;
-	sysarg_t in_task_hash;
 } ipc_call_t;
 
Index: uspace/lib/fs/libfs.c
===================================================================
--- uspace/lib/fs/libfs.c	(revision 11bb813d918c589244ca53f1bbe7b347f1b8ed3f)
+++ uspace/lib/fs/libfs.c	(revision 3c22f7021df532f9625f32db5da18694b800e183)
@@ -102,5 +102,6 @@
 	 * Ask VFS for callback connection.
 	 */
-	ipc_connect_to_me(vfs_phone, 0, 0, 0, NULL, &reg->vfs_phonehash);
+	sysarg_t taskhash;
+	ipc_connect_to_me(vfs_phone, 0, 0, 0, &taskhash, &reg->vfs_phonehash);
 	
 	/*
@@ -131,5 +132,5 @@
 	 * Create a connection fibril to handle the callback connection.
 	 */
-	async_new_connection(reg->vfs_phonehash, 0, NULL, conn);
+	async_new_connection(taskhash, reg->vfs_phonehash, 0, NULL, conn);
 	
 	/*
