Index: uspace/srv/vfs/vfs.h
===================================================================
--- uspace/srv/vfs/vfs.h	(revision 84b86dcbcab1a5af5f923fea93e451f3fece8b46)
+++ uspace/srv/vfs/vfs.h	(revision 12a56fa32dc51d54f00a93e18292ff9da1b89bed)
@@ -150,5 +150,6 @@
 extern int fs_name_to_handle(char *name, bool lock);
 
-extern int vfs_lookup_internal(char *path, size_t len, vfs_node_t *result);
+extern int vfs_lookup_internal(char *path, size_t len, vfs_node_t *result,
+    vfs_node_t *altroot);
 
 extern void vfs_register(ipc_callid_t, ipc_call_t *);
Index: uspace/srv/vfs/vfs_lookup.c
===================================================================
--- uspace/srv/vfs/vfs_lookup.c	(revision 84b86dcbcab1a5af5f923fea93e451f3fece8b46)
+++ uspace/srv/vfs/vfs_lookup.c	(revision 12a56fa32dc51d54f00a93e18292ff9da1b89bed)
@@ -52,10 +52,28 @@
 uint8_t *plb = NULL;
 
-int vfs_lookup_internal(char *path, size_t len, vfs_node_t *result)
+/** Perform a path lookup.
+ *
+ * @param path		Path to be resolved; it needn't be an ASCIIZ string.
+ * @param len		Number of path characters pointed by path.
+ * @param result	Empty node structure where the result will be stored.
+ * @param altroot	If non-empty, will be used instead of rootfs as the root
+ *			of the whole VFS tree.
+ *
+ * @return		EOK on success or an error code from errno.h.
+ */
+int vfs_lookup_internal(char *path, size_t len, vfs_node_t *result,
+    vfs_node_t *altroot)
 {
+	vfs_node_t *root;
+
 	if (!len)
 		return EINVAL;
 
-	if (!rootfs)
+	if (altroot)
+		root = altroot;
+	else
+		root = rootfs;
+
+	if (!root)
 		return ENOENT;
 	
@@ -126,7 +144,7 @@
 
 	ipc_call_t answer;
-	int phone = vfs_grab_phone(rootfs->fs_handle);
+	int phone = vfs_grab_phone(root->fs_handle);
 	aid_t req = async_send_3(phone, VFS_LOOKUP, (ipcarg_t) first,
-	    (ipcarg_t) last, (ipcarg_t) rootfs->dev_handle, &answer);
+	    (ipcarg_t) last, (ipcarg_t) root->dev_handle, &answer);
 	vfs_release_phone(phone);
 
@@ -136,4 +154,9 @@
 	futex_down(&plb_futex);
 	list_remove(&entry.plb_link);
+	/*
+	 * Erasing the path from PLB will come handy for debugging purposes.
+	 */
+	memset(&plb[first], 0, cnt1);
+	memset(plb, 0, cnt2);
 	futex_up(&plb_futex);
 
Index: uspace/srv/vfs/vfs_register.c
===================================================================
--- uspace/srv/vfs/vfs_register.c	(revision 84b86dcbcab1a5af5f923fea93e451f3fece8b46)
+++ uspace/srv/vfs/vfs_register.c	(revision 12a56fa32dc51d54f00a93e18292ff9da1b89bed)
@@ -290,5 +290,4 @@
 		ipc_answer_fast(rid, EINVAL, 0, 0);
 		return;
-		
 	}
 
