Index: uspace/app/bdsh/Makefile
===================================================================
--- uspace/app/bdsh/Makefile	(revision 196a1439ca9d28e7d82ee968a86da9fe58cb9a20)
+++ uspace/app/bdsh/Makefile	(revision 95e6c4f6c1055b3d734583025a43dbb40c085317)
@@ -48,4 +48,5 @@
 	cmds/modules/mv/mv.c \
 	cmds/modules/mount/mount.c \
+	cmds/modules/unmount/unmount.c \
 	cmds/modules/kcon/kcon.c \
 	cmds/builtins/exit/exit.c \
Index: uspace/app/bdsh/cmds/modules/module_aliases.h
===================================================================
--- uspace/app/bdsh/cmds/modules/module_aliases.h	(revision 196a1439ca9d28e7d82ee968a86da9fe58cb9a20)
+++ uspace/app/bdsh/cmds/modules/module_aliases.h	(revision 95e6c4f6c1055b3d734583025a43dbb40c085317)
@@ -14,4 +14,5 @@
 char *mod_aliases[] = {
 	"ren", "mv",
+	"umount", "unmount",
 	NULL, NULL
 };
Index: uspace/app/bdsh/cmds/modules/modules.h
===================================================================
--- uspace/app/bdsh/cmds/modules/modules.h	(revision 196a1439ca9d28e7d82ee968a86da9fe58cb9a20)
+++ uspace/app/bdsh/cmds/modules/modules.h	(revision 95e6c4f6c1055b3d734583025a43dbb40c085317)
@@ -31,4 +31,5 @@
 #include "mv/entry.h"
 #include "mount/entry.h"
+#include "unmount/entry.h"
 #include "kcon/entry.h"
 
@@ -51,4 +52,5 @@
 #include "mv/mv_def.h"
 #include "mount/mount_def.h"
+#include "unmount/unmount_def.h"
 #include "kcon/kcon_def.h"
 
Index: uspace/app/bdsh/cmds/modules/unmount/entry.h
===================================================================
--- uspace/app/bdsh/cmds/modules/unmount/entry.h	(revision 95e6c4f6c1055b3d734583025a43dbb40c085317)
+++ uspace/app/bdsh/cmds/modules/unmount/entry.h	(revision 95e6c4f6c1055b3d734583025a43dbb40c085317)
@@ -0,0 +1,9 @@
+#ifndef UNMOUNT_ENTRY_H
+#define UNMOUNT_ENTRY_H
+
+/* Entry points for the unmount command */
+extern int cmd_unmount(char **);
+extern void help_cmd_unmount(unsigned int);
+
+#endif /* UNMOUNT_ENTRY_H */
+
Index: uspace/app/bdsh/cmds/modules/unmount/unmount.c
===================================================================
--- uspace/app/bdsh/cmds/modules/unmount/unmount.c	(revision 95e6c4f6c1055b3d734583025a43dbb40c085317)
+++ uspace/app/bdsh/cmds/modules/unmount/unmount.c	(revision 95e6c4f6c1055b3d734583025a43dbb40c085317)
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2010 Jakub Jermar
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <vfs/vfs.h>
+#include <errno.h>
+#include "config.h"
+#include "util.h"
+#include "errors.h"
+#include "entry.h"
+#include "unmount.h"
+#include "cmds.h"
+
+static const char *cmdname = "unmount";
+
+/* Dispays help for unmount in various levels */
+void help_cmd_unmount(unsigned int level)
+{
+	if (level == HELP_SHORT) {
+		printf("'%s' unmount a file system.\n", cmdname);
+	} else {
+		help_cmd_unmount(HELP_SHORT);
+		printf("Usage:  %s <mp>\n", cmdname);
+	}
+	return;
+}
+
+/* Main entry point for unmount, accepts an array of arguments */
+int cmd_unmount(char **argv)
+{
+	unsigned int argc;
+	int rc;
+
+	argc = cli_count_args(argv);
+
+	if (argc != 2) {
+		printf("%s: invalid number of arguments.\n",
+		    cmdname);
+		return CMD_FAILURE;
+	}
+
+	rc = unmount(argv[1]);
+	if (rc != EOK) {
+		printf("Unable to unmount %s (rc=%d)\n", argv[1]);
+		return CMD_FAILURE;
+	}
+
+	return CMD_SUCCESS;
+}
+
Index: uspace/app/bdsh/cmds/modules/unmount/unmount.h
===================================================================
--- uspace/app/bdsh/cmds/modules/unmount/unmount.h	(revision 95e6c4f6c1055b3d734583025a43dbb40c085317)
+++ uspace/app/bdsh/cmds/modules/unmount/unmount.h	(revision 95e6c4f6c1055b3d734583025a43dbb40c085317)
@@ -0,0 +1,8 @@
+#ifndef UNMOUNT_H
+#define UNMOUNT_H
+
+/* Prototypes for the unmount command, excluding entry points */
+
+
+#endif /* UNMOUNT_H */
+
Index: uspace/app/bdsh/cmds/modules/unmount/unmount_def.h
===================================================================
--- uspace/app/bdsh/cmds/modules/unmount/unmount_def.h	(revision 95e6c4f6c1055b3d734583025a43dbb40c085317)
+++ uspace/app/bdsh/cmds/modules/unmount/unmount_def.h	(revision 95e6c4f6c1055b3d734583025a43dbb40c085317)
@@ -0,0 +1,14 @@
+{
+	"unmount",
+	"The unmount command",
+	&cmd_unmount,
+	&help_cmd_unmount,
+},
+
+{
+	"umount",
+	NULL,
+	&cmd_unmount,
+	&help_cmd_unmount,
+},
+
