Index: uspace/lib/c/generic/async/client.c
===================================================================
--- uspace/lib/c/generic/async/client.c	(revision d4475a449597f547fae3e36ba0148dad1a28a423)
+++ uspace/lib/c/generic/async/client.c	(revision 914c69344bd47cd9bdd70ec10555f3ab28b3c5ab)
@@ -694,5 +694,5 @@
 
 static errno_t async_connect_me_to_internal(cap_phone_handle_t phone,
-    sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4,
+    iface_t iface, sysarg_t arg2, sysarg_t arg3, sysarg_t flags,
     cap_phone_handle_t *out_phone)
 {
@@ -710,6 +710,6 @@
 	msg->wdata.active = true;
 
-	ipc_call_async_4(phone, IPC_M_CONNECT_ME_TO, arg1, arg2, arg3, arg4,
-	    msg, reply_received);
+	ipc_call_async_4(phone, IPC_M_CONNECT_ME_TO, (sysarg_t) iface, arg2,
+	    arg3, flags, msg, reply_received);
 
 	errno_t rc;
@@ -721,57 +721,4 @@
 	*out_phone = (cap_phone_handle_t) IPC_GET_ARG5(result);
 	return EOK;
-}
-
-/** Wrapper for making IPC_M_CONNECT_ME_TO calls using the async framework.
- *
- * Ask through for a new connection to some service.
- *
- * @param mgmt Exchange management style.
- * @param exch Exchange for sending the message.
- * @param arg1 User defined argument.
- * @param arg2 User defined argument.
- * @param arg3 User defined argument.
- *
- * @return New session on success or NULL on error.
- *
- */
-async_sess_t *async_connect_me_to(exch_mgmt_t mgmt, async_exch_t *exch,
-    sysarg_t arg1, sysarg_t arg2, sysarg_t arg3)
-{
-	if (exch == NULL) {
-		errno = ENOENT;
-		return NULL;
-	}
-
-	async_sess_t *sess = (async_sess_t *) malloc(sizeof(async_sess_t));
-	if (sess == NULL) {
-		errno = ENOMEM;
-		return NULL;
-	}
-
-	cap_phone_handle_t phone;
-	errno_t rc = async_connect_me_to_internal(exch->phone, arg1, arg2, arg3,
-	    0, &phone);
-	if (rc != EOK) {
-		errno = rc;
-		free(sess);
-		return NULL;
-	}
-
-	sess->iface = 0;
-	sess->mgmt = mgmt;
-	sess->phone = phone;
-	sess->arg1 = arg1;
-	sess->arg2 = arg2;
-	sess->arg3 = arg3;
-
-	fibril_mutex_initialize(&sess->remote_state_mtx);
-	sess->remote_state_data = NULL;
-
-	list_initialize(&sess->exch_list);
-	fibril_mutex_initialize(&sess->mutex);
-	atomic_set(&sess->refcnt, 0);
-
-	return sess;
 }
 
@@ -789,5 +736,5 @@
  *
  */
-async_sess_t *async_connect_me_to_iface(async_exch_t *exch, iface_t iface,
+async_sess_t *async_connect_me_to(async_exch_t *exch, iface_t iface,
     sysarg_t arg2, sysarg_t arg3)
 {
@@ -838,65 +785,10 @@
  * tagging.
  */
-void async_sess_args_set(async_sess_t *sess, sysarg_t arg1, sysarg_t arg2,
+void async_sess_args_set(async_sess_t *sess, iface_t iface, sysarg_t arg2,
     sysarg_t arg3)
 {
-	sess->arg1 = arg1;
+	sess->arg1 = iface;
 	sess->arg2 = arg2;
 	sess->arg3 = arg3;
-}
-
-/** Wrapper for making IPC_M_CONNECT_ME_TO calls using the async framework.
- *
- * Ask through phone for a new connection to some service and block until
- * success.
- *
- * @param mgmt Exchange management style.
- * @param exch Exchange for sending the message.
- * @param arg1 User defined argument.
- * @param arg2 User defined argument.
- * @param arg3 User defined argument.
- *
- * @return New session on success or NULL on error.
- *
- */
-async_sess_t *async_connect_me_to_blocking(exch_mgmt_t mgmt, async_exch_t *exch,
-    sysarg_t arg1, sysarg_t arg2, sysarg_t arg3)
-{
-	if (exch == NULL) {
-		errno = ENOENT;
-		return NULL;
-	}
-
-	async_sess_t *sess = (async_sess_t *) malloc(sizeof(async_sess_t));
-	if (sess == NULL) {
-		errno = ENOMEM;
-		return NULL;
-	}
-
-	cap_phone_handle_t phone;
-	errno_t rc = async_connect_me_to_internal(exch->phone, arg1, arg2, arg3,
-	    IPC_FLAG_BLOCKING, &phone);
-
-	if (rc != EOK) {
-		errno = rc;
-		free(sess);
-		return NULL;
-	}
-
-	sess->iface = 0;
-	sess->mgmt = mgmt;
-	sess->phone = phone;
-	sess->arg1 = arg1;
-	sess->arg2 = arg2;
-	sess->arg3 = arg3;
-
-	fibril_mutex_initialize(&sess->remote_state_mtx);
-	sess->remote_state_data = NULL;
-
-	list_initialize(&sess->exch_list);
-	fibril_mutex_initialize(&sess->mutex);
-	atomic_set(&sess->refcnt, 0);
-
-	return sess;
 }
 
@@ -914,5 +806,5 @@
  *
  */
-async_sess_t *async_connect_me_to_blocking_iface(async_exch_t *exch, iface_t iface,
+async_sess_t *async_connect_me_to_blocking(async_exch_t *exch, iface_t iface,
     sysarg_t arg2, sysarg_t arg3)
 {
Index: uspace/lib/c/generic/ns.c
===================================================================
--- uspace/lib/c/generic/ns.c	(revision d4475a449597f547fae3e36ba0148dad1a28a423)
+++ uspace/lib/c/generic/ns.c	(revision 914c69344bd47cd9bdd70ec10555f3ab28b3c5ab)
@@ -81,5 +81,5 @@
 
 	async_sess_t *csess =
-	    async_connect_me_to_iface(exch, iface, service, arg3);
+	    async_connect_me_to(exch, iface, service, arg3);
 	async_exchange_end(exch);
 
@@ -106,5 +106,5 @@
 	async_exch_t *exch = async_exchange_begin(sess);
 	async_sess_t *csess =
-	    async_connect_me_to_blocking_iface(exch, iface, service, arg3);
+	    async_connect_me_to_blocking(exch, iface, service, arg3);
 	async_exchange_end(exch);
 
@@ -156,5 +156,5 @@
 	if (sess_ns == NULL) {
 		exch = async_exchange_begin(&session_ns);
-		sess_ns = async_connect_me_to_iface(exch, 0, 0, 0);
+		sess_ns = async_connect_me_to(exch, 0, 0, 0);
 		async_exchange_end(exch);
 		if (sess_ns == NULL)
Index: uspace/lib/c/generic/private/async.h
===================================================================
--- uspace/lib/c/generic/private/async.h	(revision d4475a449597f547fae3e36ba0148dad1a28a423)
+++ uspace/lib/c/generic/private/async.h	(revision 914c69344bd47cd9bdd70ec10555f3ab28b3c5ab)
@@ -96,5 +96,5 @@
 
 	/** First clone connection argument */
-	sysarg_t arg1;
+	iface_t arg1;
 
 	/** Second clone connection argument */
Index: uspace/lib/c/include/async.h
===================================================================
--- uspace/lib/c/include/async.h	(revision d4475a449597f547fae3e36ba0148dad1a28a423)
+++ uspace/lib/c/include/async.h	(revision 914c69344bd47cd9bdd70ec10555f3ab28b3c5ab)
@@ -339,11 +339,7 @@
     sysarg_t *, sysarg_t *);
 
-extern async_sess_t *async_connect_me_to(exch_mgmt_t, async_exch_t *, sysarg_t,
-    sysarg_t, sysarg_t);
-extern async_sess_t *async_connect_me_to_iface(async_exch_t *, iface_t,
-    sysarg_t, sysarg_t);
-extern async_sess_t *async_connect_me_to_blocking(exch_mgmt_t, async_exch_t *,
-    sysarg_t, sysarg_t, sysarg_t);
-extern async_sess_t *async_connect_me_to_blocking_iface(async_exch_t *, iface_t,
+extern async_sess_t *async_connect_me_to(async_exch_t *, iface_t, sysarg_t,
+    sysarg_t);
+extern async_sess_t *async_connect_me_to_blocking(async_exch_t *, iface_t,
     sysarg_t, sysarg_t);
 extern async_sess_t *async_connect_kbox(task_id_t);
@@ -361,5 +357,5 @@
  * management. Proper solution needs to be implemented.
  */
-void async_sess_args_set(async_sess_t *sess, sysarg_t, sysarg_t, sysarg_t);
+void async_sess_args_set(async_sess_t *sess, iface_t, sysarg_t, sysarg_t);
 
 /*
