diff --git a/boot/zephyr/CMakeLists.txt b/boot/zephyr/CMakeLists.txt
index 259e903..fea51b8 100644
--- a/boot/zephyr/CMakeLists.txt
+++ b/boot/zephyr/CMakeLists.txt
@@ -92,6 +92,7 @@
   flash_map_extended.c
   os.c
   keys.c
+  boot_serial_extensions.c
   )
 
 if(NOT DEFINED CONFIG_FLASH_PAGE_LAYOUT)
diff --git a/boot/zephyr/Kconfig b/boot/zephyr/Kconfig
index 8ef5345..0c11519 100644
--- a/boot/zephyr/Kconfig
+++ b/boot/zephyr/Kconfig
@@ -553,7 +553,7 @@
 	  serial recovery.
 
 config ENABLE_MGMT_PERUSER
-	bool "Enables system specific mcumgr commands"
+	bool "Enable system specific mcumgr commands"
 	depends on BOOT_SERIAL_UART
 	help
 	  The option enables processing of system specific mcumgr commands;
diff --git a/boot/zephyr/boot_serial_extensions.c b/boot/zephyr/boot_serial_extensions.c
index 9983f62..1fd9bdf 100644
--- a/boot/zephyr/boot_serial_extensions.c
+++ b/boot/zephyr/boot_serial_extensions.c
@@ -20,26 +20,36 @@
 int bs_peruser_system_specific(const struct nmgr_hdr *hdr, const char *buffer,
                                int len, cbor_state_t *cs)
 {
-    const struct flash_area *fa;
-    int rc = flash_area_open(FLASH_AREA_ID(storage), &fa);
+    int mgmt_rc = MGMT_ERR_ENOTSUP;
+    int rc = -ENOTSUP;
 
-    if (rc < 0) {
-        LOG_ERR("failed to open flash area");
-    } else {
-	rc = flash_area_erase(fa, 0, FLASH_AREA_SIZE(storage));
-	if (rc < 0) {
-		LOG_ERR("failed to erase flash area");
-	}
-	flash_area_close(fa);
+    if (hdr->nh_group == ZEPHYR_MGMT_GRP_BASE &&
+        hdr->nh_id == ZEPHYR_MGMT_GRP_BASIC_CMD_ERASE_STORAGE &&
+        hdr->nh_op == NMGR_OP_WRITE) {
+
+        const struct flash_area *fa;
+
+        rc = flash_area_open(FLASH_AREA_ID(storage), &fa);
+
+        if (rc < 0) {
+            LOG_ERR("failed to open flash area");
+        } else {
+            rc = flash_area_erase(fa, 0, FLASH_AREA_SIZE(storage));
+            if (rc < 0) {
+                LOG_ERR("failed to erase flash area");
+            }
+            flash_area_close(fa);
+        }
+        if (rc == 0) {
+            mgmt_rc = MGMT_ERR_OK;
+        } else {
+            mgmt_rc = MGMT_ERR_EUNKNOWN;
+        }
     }
 
     map_start_encode(cs, 10);
     tstrx_put(cs, "rc");
-    if (rc != 0) {
-        uintx32_put(cs, MGMT_ERR_EUNKNOWN);
-    } else {
-        uintx32_put(cs, 0);
-    }
+    uintx32_put(cs, mgmt_rc);
     map_end_encode(cs, 10);
 
     return rc;
diff --git a/boot/zephyr/include/mcuboot_config/mcuboot_config.h b/boot/zephyr/include/mcuboot_config/mcuboot_config.h
index 13a28e6..30e8ee9 100644
--- a/boot/zephyr/include/mcuboot_config/mcuboot_config.h
+++ b/boot/zephyr/include/mcuboot_config/mcuboot_config.h
@@ -145,6 +145,12 @@
 #define MCUBOOT_FIH_PROFILE_HIGH
 #endif
 
+#ifdef CONFIG_ENABLE_MGMT_PERUSER
+#define MCUBOOT_PERUSER_MGMT_GROUP_ENABLED 1
+#else
+#define MCUBOOT_PERUSER_MGMT_GROUP_ENABLED 0
+#endif
+
 /*
  * Enabling this option uses newer flash map APIs. This saves RAM and
  * avoids deprecated API usage.
