Index: uspace/srv/ns/ns.c
===================================================================
--- uspace/srv/ns/ns.c	(revision 889cdb1c2046af9d31d314fa691773fa2e4f9119)
+++ uspace/srv/ns/ns.c	(revision eec201dc0da41d601ba79f79b51c8f95f25d461e)
@@ -70,5 +70,5 @@
 	}
 
-	async_answer_0(icall, EOK);
+	async_answer_5(icall, EOK, 0, 0, 0, 0, async_get_label());
 
 	while (true) {
Index: uspace/srv/ns/task.c
===================================================================
--- uspace/srv/ns/task.c	(revision 889cdb1c2046af9d31d314fa691773fa2e4f9119)
+++ uspace/srv/ns/task.c	(revision eec201dc0da41d601ba79f79b51c8f95f25d461e)
@@ -91,14 +91,14 @@
 typedef struct {
 	ht_link_t link;
-	sysarg_t in_phone_hash;  /**< Incoming phone hash. */
-	task_id_t id;            /**< Task ID. */
+	sysarg_t label;  /**< Incoming phone label. */
+	task_id_t id;    /**< Task ID. */
 } p2i_entry_t;
 
-/* phone-to-id hash table operations */
+/* label-to-id hash table operations */
 
 static size_t p2i_key_hash(void *key)
 {
-	sysarg_t in_phone_hash = *(sysarg_t *)key;
-	return in_phone_hash;
+	sysarg_t label = *(sysarg_t *)key;
+	return label;
 }
 
@@ -106,13 +106,13 @@
 {
 	p2i_entry_t *entry = hash_table_get_inst(item, p2i_entry_t, link);
-	return entry->in_phone_hash;
+	return entry->label;
 }
 
 static bool p2i_key_equal(void *key, const ht_link_t *item)
 {
-	sysarg_t in_phone_hash = *(sysarg_t *)key;
+	sysarg_t label = *(sysarg_t *)key;
 	p2i_entry_t *entry = hash_table_get_inst(item, p2i_entry_t, link);
 
-	return (in_phone_hash == entry->in_phone_hash);
+	return (label == entry->label);
 }
 
@@ -137,5 +137,5 @@
 };
 
-/** Map phone hash to task ID */
+/** Map phone label to task ID */
 static hash_table_t phone_to_id;
 
@@ -227,5 +227,5 @@
 	task_id_t id = MERGE_LOUP32(IPC_GET_ARG1(*call), IPC_GET_ARG2(*call));
 
-	ht_link_t *link = hash_table_find(&phone_to_id, &call->in_phone_hash);
+	ht_link_t *link = hash_table_find(&phone_to_id, &call->request_label);
 	if (link != NULL)
 		return EEXIST;
@@ -245,5 +245,6 @@
 	 */
 
-	entry->in_phone_hash = call->in_phone_hash;
+	assert(call->request_label);
+	entry->label = call->request_label;
 	entry->id = id;
 	hash_table_insert(&phone_to_id, &entry->link);
@@ -262,7 +263,8 @@
 }
 
-static errno_t get_id_by_phone(sysarg_t phone_hash, task_id_t *id)
-{
-	ht_link_t *link = hash_table_find(&phone_to_id, &phone_hash);
+static errno_t get_id_by_phone(sysarg_t label, task_id_t *id)
+{
+	assert(label);
+	ht_link_t *link = hash_table_find(&phone_to_id, &label);
 	if (link == NULL)
 		return ENOENT;
@@ -276,5 +278,5 @@
 errno_t ns_task_retval(ipc_call_t *call)
 {
-	task_id_t id = call->in_task_id;
+	task_id_t id = call->task_id;
 
 	ht_link_t *link = hash_table_find(&task_hash_table, &id);
@@ -297,10 +299,10 @@
 {
 	task_id_t id;
-	errno_t rc = get_id_by_phone(call->in_phone_hash, &id);
+	errno_t rc = get_id_by_phone(call->request_label, &id);
 	if (rc != EOK)
 		return rc;
 
 	/* Delete from phone-to-id map. */
-	hash_table_remove(&phone_to_id, &call->in_phone_hash);
+	hash_table_remove(&phone_to_id, &call->request_label);
 
 	/* Mark task as finished. */
