diff --git a/CommandListener.cpp b/CommandListener.cpp
index a40eac2..59c431f 100644
--- a/CommandListener.cpp
+++ b/CommandListener.cpp
@@ -61,9 +61,9 @@
     } else if (!strcmp(argv[1], "format")) {
         rc = vm->formatVolume(argv[2]);
     } else if (!strcmp(argv[1], "share")) {
-        rc = vm->shareVolume(argv[1], argv[2]);
+        rc = vm->shareVolume(argv[2], argv[3]);
     } else if (!strcmp(argv[1], "unshare")) {
-        rc = vm->unshareVolume(argv[1], argv[2]);
+        rc = vm->unshareVolume(argv[2], argv[3]);
     } else if (!strcmp(argv[1], "shared")) {
         bool enabled = false;
 
@@ -74,6 +74,7 @@
             cli->sendMsg(ResponseCode::ShareEnabledResult,
                     (enabled ? "Share enabled" : "Share disabled"), false);
         }
+        return 0;
     } else {
         cli->sendMsg(ResponseCode::CommandSyntaxError, "Unknown volume cmd", false);
     }
@@ -93,6 +94,7 @@
         } else if (errno == EBUSY) {
             rc = ResponseCode::OpFailedVolBusy;
         } else {
+            LOGW("Returning OperationFailed - no handler for errno %d", errno);
             rc = ResponseCode::OperationFailed;
         }
         cli->sendMsg(rc, "volume operation failed", true);
diff --git a/Fat.cpp b/Fat.cpp
index 4f65d38..f934ebc 100644
--- a/Fat.cpp
+++ b/Fat.cpp
@@ -164,15 +164,17 @@
     }
     close(fd);
 
-    const char *args[7];
+    const char *args[9];
     int rc;
     args[0] = MKDOSFS_PATH;
     args[1] = "-F";
     args[2] = "32";
     args[3] = "-O";
     args[4] = "android";
-    args[5] = fsPath;
-    args[6] = NULL;
+    args[5] = "-c";
+    args[6] = "8";
+    args[7] = fsPath;
+    args[8] = NULL;
     rc = logwrap(7, args, 1);
 
     if (rc == 0) {
diff --git a/VolumeManager.cpp b/VolumeManager.cpp
index 96a691b..ba92768 100644
--- a/VolumeManager.cpp
+++ b/VolumeManager.cpp
@@ -537,9 +537,9 @@
     }
 
     if (v->getState() != Volume::State_Shared) {
-        *enabled = true;
-    } else {
         *enabled = false;
+    } else {
+        *enabled = true;
     }
     return 0;
 }
