Index: uspace/lib/libc/generic/loader.c
===================================================================
--- uspace/lib/libc/generic/loader.c	(revision 0175246a19e8ee96e2ea4f2c13e89c437bf42b2e)
+++ uspace/lib/libc/generic/loader.c	(revision 482c86fe027ae8daeadd5905411883986a9524ec)
@@ -243,4 +243,6 @@
 		return rc;
 
+	ipc_hangup(ldr->phone_id);
+	ldr->phone_id = 0;
 	return EOK;
 }
Index: uspace/srv/loader/main.c
===================================================================
--- uspace/srv/loader/main.c	(revision 0175246a19e8ee96e2ea4f2c13e89c437bf42b2e)
+++ uspace/srv/loader/main.c	(revision 482c86fe027ae8daeadd5905411883986a9524ec)
@@ -179,5 +179,4 @@
 	
 	ipc_data_write_finalize(callid, arg_buf, buf_len);
-	ipc_answer_0(rid, EOK);
 	
 	arg_buf[buf_len] = '\0';
@@ -199,9 +198,8 @@
 	if (argv == NULL) {
 		free(arg_buf);
-		ipc_answer_0(callid, ENOMEM);
 		ipc_answer_0(rid, ENOMEM);
 		return;
 	}
-	
+
 	/*
 	 * Fill argv with argument pointers
@@ -219,4 +217,6 @@
 	argc = n;
 	argv[n] = NULL;
+
+	ipc_answer_0(rid, EOK);
 }
 
Index: uspace/srv/ns/ns.c
===================================================================
--- uspace/srv/ns/ns.c	(revision 0175246a19e8ee96e2ea4f2c13e89c437bf42b2e)
+++ uspace/srv/ns/ns.c	(revision 482c86fe027ae8daeadd5905411883986a9524ec)
@@ -325,5 +325,4 @@
 	retval = ipc_forward_fast(callid, hs->phone, IPC_GET_ARG2(*call),
 	    IPC_GET_ARG3(*call), 0, IPC_FF_NONE);
-	
 out:
 	if (!(callid & IPC_CALLID_NOTIFICATION))
@@ -358,6 +357,7 @@
 	int rc = ipc_forward_fast(csr->callid, phone, IPC_GET_ARG2(csr->call),
 		IPC_GET_ARG3(csr->call), 0, IPC_FF_NONE);
-	
+
 	free(csr);
+	ipc_hangup(phone);
 }
 
