diff --git a/CommandListener.cpp b/CommandListener.cpp
index a200007..781eb91 100644
--- a/CommandListener.cpp
+++ b/CommandListener.cpp
@@ -378,12 +378,10 @@
         }
         char path[255];
 
-        if (vm->getAsecMountPath(argv[2], path, sizeof(path))) {
-            cli->sendMsg(ResponseCode::OperationFailed, "Failed to get path", true);
-        } else {
+        if (!(rc = vm->getAsecMountPath(argv[2], path, sizeof(path)))) {
             cli->sendMsg(ResponseCode::AsecPathResult, path, false);
+            return 0;
         }
-        return 0;
     } else {
         dumpArgs(argc, argv, -1);
         cli->sendMsg(ResponseCode::CommandSyntaxError, "Unknown asec cmd", false);
diff --git a/ResponseCode.cpp b/ResponseCode.cpp
index d0410b6..cb9f98c 100644
--- a/ResponseCode.cpp
+++ b/ResponseCode.cpp
@@ -33,6 +33,8 @@
         return(ResponseCode::OpFailedMediaCorrupt);
     } else if (errno == EBUSY) {
         return(ResponseCode::OpFailedStorageBusy);
+    } else if (errno == ENOENT) {
+        return(ResponseCode::OpFailedStorageNotFound);
     }
 
     LOGW("Returning OperationFailed - no handler for errno %d", errno);
diff --git a/ResponseCode.h b/ResponseCode.h
index 5e15c80..a858b99 100644
--- a/ResponseCode.h
+++ b/ResponseCode.h
@@ -42,6 +42,7 @@
     static const int OpFailedMediaCorrupt     = 403;
     static const int OpFailedVolNotMounted    = 404;
     static const int OpFailedStorageBusy      = 405;
+    static const int OpFailedStorageNotFound  = 406;
 
     // 500 series - The command was not accepted and the requested
     // action did not take place.
diff --git a/VolumeManager.cpp b/VolumeManager.cpp
index 7a44e2e..c72482e 100644
--- a/VolumeManager.cpp
+++ b/VolumeManager.cpp
@@ -195,6 +195,14 @@
 }
 
 int VolumeManager::getAsecMountPath(const char *id, char *buffer, int maxlen) {
+    char asecFileName[255];
+    snprintf(asecFileName, sizeof(asecFileName), "%s/%s.asec", Volume::SEC_ASECDIR, id);
+
+    memset(buffer, 0, maxlen);
+    if (access(asecFileName, F_OK)) {
+        errno = ENOENT;
+        return -1;
+    }
 
     snprintf(buffer, maxlen, "%s/%s", Volume::ASECDIR, id);
     return 0;
