Index: uspace/app/tester/vfs/vfs1.c
===================================================================
--- uspace/app/tester/vfs/vfs1.c	(revision e190a89b44f7951cfffe72a861b85afe3b31b62b)
+++ uspace/app/tester/vfs/vfs1.c	(revision 2f60a5290eb6b781b8644febd27bc3c984f97c1b)
@@ -44,8 +44,21 @@
 char *test_vfs1(bool quiet)
 {
-	if (mount("tmpfs", "/", "nulldev0") != EOK)
-		return "mount() failed.\n";
-	if (!quiet)
-		printf("mounted tmpfs on /.\n");
+	int rc;
+
+	rc = mount("tmpfs", "/", "nulldev0");
+	switch (rc) {
+	case EOK:
+		if (!quiet)
+			printf("mounted tmpfs on /\n");
+		break;
+	case EBUSY:
+		if (!quiet)
+			printf("(INFO) something is already mounted on /\n");
+		break;
+	default:
+		if (!quiet)
+			printf("(INFO) IPC returned errno %d\n", rc);
+		return "mount() failed.";
+	}
 
 	if (mkdir("/mydir", 0) != 0)
Index: uspace/srv/vfs/vfs_ops.c
===================================================================
--- uspace/srv/vfs/vfs_ops.c	(revision e190a89b44f7951cfffe72a861b85afe3b31b62b)
+++ uspace/srv/vfs/vfs_ops.c	(revision 2f60a5290eb6b781b8644febd27bc3c984f97c1b)
@@ -189,4 +189,13 @@
 		/* We already have the root FS. */
 		rwlock_write_lock(&namespace_rwlock);
+		if ((size == 1) && (buf[0] == '/')) {
+			/* Trying to mount root FS over root FS */
+			rwlock_write_unlock(&namespace_rwlock);
+			futex_up(&rootfs_futex);
+			vfs_node_put(mr_node);
+			free(buf);
+			ipc_answer_0(rid, EBUSY);
+			return;
+		}
 		rc = vfs_lookup_internal(buf, L_DIRECTORY, &mp_res, NULL);
 		if (rc != EOK) {
