diff --git a/test/vpnor/Makefile.am.include b/test/vpnor/Makefile.am.include
index 2a39ae1..6765b02 100644
--- a/test/vpnor/Makefile.am.include
+++ b/test/vpnor/Makefile.am.include
@@ -107,6 +107,21 @@
 test_vpnor_toc_flags_LDFLAGS = $(OESDK_TESTCASE_FLAGS)
 test_vpnor_toc_flags_LDADD = $(VPNOR_LDADD)
 
+test_vpnor_toc_overlap_SOURCES = \
+	$(TEST_MOCK_SRCS) \
+	mboxd_msg.c \
+	mboxd_windows.c \
+	mboxd_lpc.c \
+	mboxd_lpc_virtual.cpp \
+	mboxd_pnor_partition_table.cpp \
+	mboxd_flash_virtual.cpp \
+	pnor_partition.cpp \
+	common.c \
+	pnor_partition_table.cpp \
+	%reldir%/toc_overlap.cpp
+test_vpnor_toc_overlap_LDFLAGS = $(OESDK_TESTCASE_FLAGS)
+test_vpnor_toc_overlap_LDADD = $(VPNOR_LDADD)
+
 if VIRTUAL_PNOR_ENABLED
 check_PROGRAMS += \
 	%reldir%/create_pnor_partition_table \
@@ -120,5 +135,8 @@
 	%reldir%/toc_no_start \
 	%reldir%/toc_no_end \
 	%reldir%/toc_no_version \
-	%reldir%/toc_flags
+	%reldir%/toc_flags \
+	%reldir%/toc_overlap
+
+XFAIL_TESTS += %reldir%/toc_overlap
 endif
diff --git a/test/vpnor/toc_overlap.cpp b/test/vpnor/toc_overlap.cpp
new file mode 100644
index 0000000..3f1ca3f
--- /dev/null
+++ b/test/vpnor/toc_overlap.cpp
@@ -0,0 +1,52 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright (C) 2018 IBM Corp.
+#include <assert.h>
+#include <string.h>
+
+#include "config.h"
+#include "pnor_partition_table.hpp"
+
+extern "C" {
+#include "test/mbox.h"
+#include "test/system.h"
+}
+
+#include "test/vpnor/tmpd.hpp"
+
+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;
+
+const std::string toc[] = {
+    "partition01=ONE,00001000,00003000,80,",
+    "partition02=TWO,00002000,00004000,80,",
+};
+
+int main()
+{
+    namespace test = openpower::virtual_pnor::test;
+    namespace vpnor = openpower::virtual_pnor;
+
+    struct mbox_context* ctx;
+
+    system_set_reserved_size(MEM_SIZE);
+    system_set_mtd_sizes(MEM_SIZE, ERASE_SIZE);
+
+    ctx = mbox_create_test_context(N_WINDOWS, WINDOW_SIZE);
+
+    test::VpnorRoot root(ctx, toc, BLOCK_SIZE);
+
+    try
+    {
+        vpnor::partition::Table table(root.ro(), BLOCK_SIZE, PNOR_SIZE);
+    }
+    catch (vpnor::InvalidTocEntry& e)
+    {
+        return 0;
+    }
+
+    assert(false);
+}
