diff --git a/vpnor/backend.cpp b/vpnor/backend.cpp
index 3866c57..d081b13 100644
--- a/vpnor/backend.cpp
+++ b/vpnor/backend.cpp
@@ -85,6 +85,9 @@
     try
     {
         priv->vpnor = new vpnor_partition_table;
+        // Table object may throw error hence initialize table pointer
+        // to null so that no one try to free the junk pointer.
+        priv->vpnor->table = NULL;
         priv->vpnor->table =
             new openpower::virtual_pnor::partition::Table(backend);
     }
diff --git a/vpnor/test/Makefile.am.include b/vpnor/test/Makefile.am.include
index dbbf3fc..fb9bef7 100644
--- a/vpnor/test/Makefile.am.include
+++ b/vpnor/test/Makefile.am.include
@@ -136,6 +136,13 @@
 vpnor_test_toc_missing_file_LDFLAGS = $(OESDK_TESTCASE_FLAGS)
 vpnor_test_toc_missing_file_LDADD = $(VPNOR_LDADD)
 
+vpnor_test_toc_missing_file_reset_SOURCES = \
+	$(TEST_MOCK_VPNOR_SRCS) \
+	$(TEST_MBOX_VPNOR_INTEG_SRCS) \
+	%reldir%/toc_missing_file_reset.cpp
+vpnor_test_toc_missing_file_reset_LDFLAGS = $(OESDK_TESTCASE_FLAGS)
+vpnor_test_toc_missing_file_reset_LDADD = $(VPNOR_LDADD)
+
 vpnor_test_create_read_window_oob_SOURCES = \
 	$(TEST_MOCK_VPNOR_SRCS) \
 	$(TEST_MBOX_VPNOR_INTEG_SRCS) \
@@ -252,6 +259,7 @@
 	%reldir%/toc_lookup_found \
 	%reldir%/toc_lookup_failed \
 	%reldir%/toc_missing_file \
+	%reldir%/toc_missing_file_reset \
 	%reldir%/create_read_window_oob \
 	%reldir%/create_read_window_toc \
 	%reldir%/create_read_window_straddle_partitions \
diff --git a/vpnor/test/toc_missing_file_reset.cpp b/vpnor/test/toc_missing_file_reset.cpp
new file mode 100644
index 0000000..2caab8b
--- /dev/null
+++ b/vpnor/test/toc_missing_file_reset.cpp
@@ -0,0 +1,67 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright (C) 2024 IBM Corp.
+#include "config.h"
+
+extern "C" {
+#include "backend.h"
+#include "test/mbox.h"
+#include "test/system.h"
+}
+
+#include "vpnor/table.hpp"
+#include "vpnor/test/tmpd.hpp"
+
+#include <cassert>
+#include <cstring>
+
+static constexpr auto BLOCK_SIZE = 0x1000;
+static constexpr auto ERASE_SIZE = BLOCK_SIZE;
+static constexpr auto PNOR_SIZE = 64 * 1024 * 1024;
+static constexpr auto MEM_SIZE = 32 * 1024 * 1024;
+static constexpr auto N_WINDOWS = 1;
+static constexpr auto WINDOW_SIZE = BLOCK_SIZE * 2;
+
+static const uint8_t reset_state[] = {0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
+                                      0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                                      0x00, 0x00, 0x00, 0x00};
+static const uint8_t reset_state1[] = {0x01, 0x02, 0x00, 0x00, 0x00, 0x00,
+                                       0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                                       0x00, 0x00, 0x00, 0x00};
+
+const std::string toc[] = {
+    "partition01=ONE,00001000,00002000,80,",
+    "partition02=TWO,00002000,00003000,80,",
+};
+
+int main()
+{
+    namespace test = openpower::virtual_pnor::test;
+    namespace fs = std::filesystem;
+    namespace vpnor = openpower::virtual_pnor;
+
+    int rc;
+    struct mbox_context* ctx;
+
+    system_set_reserved_size(MEM_SIZE);
+    system_set_mtd_sizes(MEM_SIZE, ERASE_SIZE);
+
+    ctx = mbox_create_frontend_context(N_WINDOWS, WINDOW_SIZE);
+
+    test::VpnorRoot root(&ctx->backend, toc, BLOCK_SIZE);
+
+    fs::remove(root.ro() / "TWO");
+
+    /*
+     * First reset should fail due to missing file but it should keep objects
+     * in sane state.
+     */
+    rc = mbox_command_dispatch(ctx, reset_state, sizeof(reset_state));
+    assert(rc == 2);
+
+    /*
+     * Run one more reset to make sure that reset can free objects created
+     * by previous reset.
+     */
+    rc = mbox_command_dispatch(ctx, reset_state1, sizeof(reset_state1));
+    assert(rc == 2);
+}
