diff --git a/CommandListener.cpp b/CommandListener.cpp
index 0207245..f15d44a 100644
--- a/CommandListener.cpp
+++ b/CommandListener.cpp
@@ -45,6 +45,7 @@
     registerCmd(new FinalizeAsecCmd());
     registerCmd(new DestroyAsecCmd());
     registerCmd(new MountAsecCmd());
+    registerCmd(new UnmountAsecCmd());
     registerCmd(new ListAsecCmd());
     registerCmd(new AsecPathCmd());
 }
@@ -254,6 +255,26 @@
     return 0;
 }
 
+CommandListener::UnmountAsecCmd::UnmountAsecCmd() :
+                 VoldCommand("unmount_asec") {
+}
+
+int CommandListener::UnmountAsecCmd::runCommand(SocketClient *cli,
+                                            int argc, char **argv) {
+    if (argc != 2) {
+        cli->sendMsg(ResponseCode::CommandSyntaxError,
+                     "Usage: unmount_asec <namespace-id>", false);
+        return 0;
+    }
+
+    if (VolumeManager::Instance()->unmountAsec(argv[1])) {
+        cli->sendMsg(ResponseCode::OperationFailed, "Unmount failed", true);
+    } else {
+        cli->sendMsg(ResponseCode::CommandOkay, "Unmount succeeded", false);
+    }
+    return 0;
+}
+
 CommandListener::ListAsecCmd::ListAsecCmd() :
                  VoldCommand("list_asec") {
 
diff --git a/CommandListener.h b/CommandListener.h
index cc078da..64ff31f 100644
--- a/CommandListener.h
+++ b/CommandListener.h
@@ -111,6 +111,13 @@
         int runCommand(SocketClient *c, int argc, char ** argv);
     };
 
+    class UnmountAsecCmd : public VoldCommand {
+    public:
+        UnmountAsecCmd();
+        virtual ~UnmountAsecCmd() {}
+        int runCommand(SocketClient *c, int argc, char ** argv);
+    };
+
     class ListAsecCmd : public VoldCommand {
     public:
         ListAsecCmd();
