Index: uspace/lib/c/generic/async_sess.c
===================================================================
--- uspace/lib/c/generic/async_sess.c	(revision e08a73395d806318f3ac81da5e42459be2c60d2c)
+++ uspace/lib/c/generic/async_sess.c	(revision 339dfc534be7040c5c24d49ae03ea9129c61fa86)
@@ -154,4 +154,5 @@
 {
 	sess->sess_phone = phone;
+	sess->connect_arg1 = 0;
 	list_initialize(&sess->conn_head);
 	
@@ -159,4 +160,11 @@
 	fibril_mutex_lock(&async_sess_mutex);
 	list_append(&sess->sess_link, &session_list_head);
+	fibril_mutex_unlock(&async_sess_mutex);
+}
+
+void async_session_set_connect_args(async_sess_t *sess, sysarg_t arg1)
+{
+	fibril_mutex_lock(&async_sess_mutex);
+	sess->connect_arg1 = arg1;
 	fibril_mutex_unlock(&async_sess_mutex);
 }
@@ -231,5 +239,6 @@
 		 */
 retry:
-		data_phone = async_connect_me_to(sess->sess_phone, 0, 0, 0);
+		data_phone = async_connect_me_to(sess->sess_phone,
+		    sess->connect_arg1, 0, 0);
 		if (data_phone >= 0) {
 			/* success, do nothing */
Index: uspace/lib/c/include/async_sess.h
===================================================================
--- uspace/lib/c/include/async_sess.h	(revision e08a73395d806318f3ac81da5e42459be2c60d2c)
+++ uspace/lib/c/include/async_sess.h	(revision 339dfc534be7040c5c24d49ae03ea9129c61fa86)
@@ -40,4 +40,5 @@
 typedef struct {
 	int sess_phone;		/**< Phone for cloning off the connections. */
+	sysarg_t connect_arg1;  /**< Argument for CONNECT_ME_TO. */
 	link_t conn_head;	/**< List of open data connections. */
 	link_t sess_link;	/**< Link in global list of open sessions. */
@@ -46,4 +47,5 @@
 extern void _async_sess_init(void);
 extern void async_session_create(async_sess_t *, int);
+extern void async_session_set_connect_args(async_sess_t *, sysarg_t);
 extern void async_session_destroy(async_sess_t *);
 extern int async_exchange_begin(async_sess_t *);
