Index: uspace/srv/ns/clonable.c
===================================================================
--- uspace/srv/ns/clonable.c	(revision 566992e1d4649f5d2bb5e0b4c2843589efcd9fb3)
+++ uspace/srv/ns/clonable.c	(revision 7b616e23c349fc3f8cb4c5132825f4f5ef12c96a)
@@ -31,5 +31,5 @@
  */
 
-#include <ipc/ipc.h>
+#include <async.h>
 #include <ipc/services.h>
 #include <adt/list.h>
@@ -81,5 +81,5 @@
 		/* There was no pending connection request. */
 		printf("%s: Unexpected clonable server.\n", NAME);
-		ipc_answer_0(callid, EBUSY);
+		async_answer_0(callid, EBUSY);
 		return;
 	}
@@ -91,11 +91,17 @@
 	assert(csr->service == SERVICE_LOADER);
 	
-	ipc_answer_0(callid, EOK);
+	async_answer_0(callid, EOK);
 	
-	ipc_forward_fast(csr->callid, phone, csr->iface, csr->arg3, 0,
+	async_sess_t *sess = async_callback_receive(EXCHANGE_SERIALIZE);
+	if (sess == NULL)
+		async_answer_0(callid, EIO);
+	
+	async_exch_t *exch = async_exchange_begin(sess);
+	async_forward_fast(csr->callid, exch, csr->iface, csr->arg3, 0,
 	    IPC_FF_NONE);
+	async_exchange_end(exch);
 	
 	free(csr);
-	ipc_hangup(phone);
+	async_hangup(sess);
 }
 
@@ -117,5 +123,5 @@
 	cs_req_t *csr = malloc(sizeof(cs_req_t));
 	if (csr == NULL) {
-		ipc_answer_0(callid, ENOMEM);
+		async_answer_0(callid, ENOMEM);
 		return;
 	}
@@ -126,5 +132,5 @@
 	if (rc < 0) {
 		free(csr);
-		ipc_answer_0(callid, rc);
+		async_answer_0(callid, rc);
 		return;
 	}
