Index: uspace/lib/c/generic/async_sess.c
===================================================================
--- uspace/lib/c/generic/async_sess.c	(revision d1c041a5086a834c796fe8fef337b4b257b1fc8e)
+++ uspace/lib/c/generic/async_sess.c	(revision a1dc7fe84096c2e1a97f1148301daa5edeaac376)
@@ -114,5 +114,5 @@
 
 /**
- * Mutex protecting the inactive_conn_head list and the session_hash hash table.
+ * Mutex protecting the inactive_conn_head list and the session list.
  */
 static fibril_mutex_t async_sess_mutex;
@@ -124,7 +124,7 @@
 
 /**
- * List of all existing sessions.
- */
-//static LIST_INITIALIZE(session_list);
+ * List of all open sessions.
+ */
+static LIST_INITIALIZE(session_list_head);
 
 /** Initialize the async_sess subsystem.
@@ -136,4 +136,5 @@
 	fibril_mutex_initialize(&async_sess_mutex);
 	list_initialize(&inactive_conn_head);
+	list_initialize(&session_list_head);
 }
 
@@ -142,4 +143,9 @@
 	sess->sess_phone = phone;
 	list_initialize(&sess->conn_head);
+	
+	/* Add to list of sessions. */
+	fibril_mutex_lock(&async_sess_mutex);
+	list_append(&sess->sess_link, &session_list_head);
+	fibril_mutex_unlock(&async_sess_mutex);
 }
 
@@ -147,4 +153,9 @@
 {
 	conn_node_t *conn;
+
+	/* Remove from list of sessions. */
+	fibril_mutex_lock(&async_sess_mutex);
+	list_remove(&sess->sess_link);
+	fibril_mutex_unlock(&async_sess_mutex);
 
 	/* We did not connect the phone so we do not hang it up either. */
Index: uspace/lib/c/include/async_sess.h
===================================================================
--- uspace/lib/c/include/async_sess.h	(revision d1c041a5086a834c796fe8fef337b4b257b1fc8e)
+++ uspace/lib/c/include/async_sess.h	(revision a1dc7fe84096c2e1a97f1148301daa5edeaac376)
@@ -41,4 +41,5 @@
 	int sess_phone;		/**< Phone for cloning off the connections. */
 	link_t conn_head;	/**< List of open data connections. */
+	link_t sess_link;	/**< Link in global list of open sessions. */
 } async_sess_t;
 
