Index: uspace/srv/vfs/vfs.h
===================================================================
--- uspace/srv/vfs/vfs.h	(revision 7907cf9b0f93fc54470f419cd7150c410ed1caa3)
+++ uspace/srv/vfs/vfs.h	(revision c1c0184baf11643c0fc4b19ac1d548092d587c73)
@@ -34,4 +34,5 @@
 #define VFS_VFS_H_
 
+#include <async.h>
 #include <ipc/ipc.h>
 #include <adt/list.h>
@@ -54,5 +55,5 @@
 	fs_handle_t fs_handle;
 	fibril_mutex_t phone_lock;
-	sysarg_t phone;
+	async_sess_t session;
 } fs_info_t;
 
Index: uspace/srv/vfs/vfs_register.c
===================================================================
--- uspace/srv/vfs/vfs_register.c	(revision 7907cf9b0f93fc54470f419cd7150c410ed1caa3)
+++ uspace/srv/vfs/vfs_register.c	(revision c1c0184baf11643c0fc4b19ac1d548092d587c73)
@@ -111,4 +111,6 @@
 void vfs_register(ipc_callid_t rid, ipc_call_t *request)
 {
+	int phone;
+	
 	dprintf("Processing VFS_REGISTER request received from %p.\n",
 	    request->in_phone_hash);
@@ -186,5 +188,7 @@
 		return;
 	}
-	fs_info->phone = IPC_GET_ARG5(call);
+	
+	phone = IPC_GET_ARG5(call);
+	async_session_create(&fs_info->session, phone);
 	ipc_answer_0(callid, EOK);
 	
@@ -200,5 +204,6 @@
 		list_remove(&fs_info->fs_link);
 		fibril_mutex_unlock(&fs_head_lock);
-		ipc_hangup(fs_info->phone);
+		async_session_destroy(&fs_info->session);
+		ipc_hangup(phone);
 		free(fs_info);
 		ipc_answer_0(callid, EINVAL);
@@ -214,5 +219,6 @@
 		list_remove(&fs_info->fs_link);
 		fibril_mutex_unlock(&fs_head_lock);
-		ipc_hangup(fs_info->phone);
+		async_session_destroy(&fs_info->session);
+		ipc_hangup(phone);
 		free(fs_info);
 		ipc_answer_0(callid, EINVAL);
@@ -270,5 +276,5 @@
 			fibril_mutex_unlock(&fs_head_lock);
 			fibril_mutex_lock(&fs->phone_lock);
-			phone = async_transaction_begin(fs->phone);
+			phone = async_transaction_begin(&fs->session);
 			fibril_mutex_unlock(&fs->phone_lock);
 
@@ -296,5 +302,5 @@
 			fibril_mutex_unlock(&fs_head_lock);
 			fibril_mutex_lock(&fs->phone_lock);
-			async_transaction_end(fs->phone, phone);
+			async_transaction_end(&fs->session, phone);
 			fibril_mutex_unlock(&fs->phone_lock);
 			return;
