diff --git a/pnor_partition_table.cpp b/pnor_partition_table.cpp
index 3e3f1d1..eafdca5 100644
--- a/pnor_partition_table.cpp
+++ b/pnor_partition_table.cpp
@@ -28,7 +28,6 @@
 Table::Table(fs::path&& directory,
              size_t blockSize, size_t pnorSize):
     szBlocks(0),
-    imgBlocks(0),
     directory(std::move(directory)),
     numParts(0),
     blockSize(blockSize),
@@ -76,16 +75,14 @@
                             (num * sizeof(pnor_partition));
     size_t totalSizeAligned = align_up(totalSizeBytes, blockSize);
     szBlocks = totalSizeAligned / blockSize;
-    imgBlocks = szBlocks;
     tbl.resize(totalSizeAligned);
 }
 
 inline void Table::writeSizes(pnor_partition& part, size_t start, size_t end)
 {
     size_t size = end - start;
-    part.data.base = imgBlocks;
+    part.data.base = align_up(start, blockSize) / blockSize;
     size_t sizeInBlocks = align_up(size, blockSize) / blockSize;
-    imgBlocks += sizeInBlocks;
     part.data.size = sizeInBlocks;
 
     // If a a patch partition file exists, populate actual size with its file
diff --git a/pnor_partition_table.hpp b/pnor_partition_table.hpp
index 1cabe23..2d0d007 100644
--- a/pnor_partition_table.hpp
+++ b/pnor_partition_table.hpp
@@ -218,9 +218,6 @@
          */
         size_t szBlocks;
 
-        /** @brief Size of virtual PNOR image, measured in erase-blocks */
-        size_t imgBlocks;
-
         /** @brief Partition table */
         PartitionTable tbl;
 
diff --git a/test/create_pnor_partition_table.cpp b/test/create_pnor_partition_table.cpp
index bfc4471..d542299 100644
--- a/test/create_pnor_partition_table.cpp
+++ b/test/create_pnor_partition_table.cpp
@@ -47,7 +47,7 @@
 
     pnor_partition expectedPartition{};
     strcpy(expectedPartition.data.name, partitionName);
-    expectedPartition.data.base = 1; // starts after 1 block
+    expectedPartition.data.base = 0; // starts at offset 0
     expectedPartition.data.size = 1; // 1 block
     expectedPartition.data.actual = 0x400; // 1024 bytes
     expectedPartition.data.id = 1;
@@ -71,7 +71,7 @@
                 sizeof(pnor_partition));
     assert(rc == 0);
 
-    const pnor_partition& first = table.partition(4096);
+    const pnor_partition& first = table.partition(0); // Partition at offset 0
     rc = memcmp(&first, &result.partitions[0], sizeof(pnor_partition));
     assert(rc == 0);
 
diff --git a/test/create_read_window_vpnor.cpp b/test/create_read_window_vpnor.cpp
index d9bcccc..7c344f7 100644
--- a/test/create_read_window_vpnor.cpp
+++ b/test/create_read_window_vpnor.cpp
@@ -13,7 +13,9 @@
 #include <fstream>
 #include <experimental/filesystem>
 
-constexpr auto line = "partition01=HBB,00000000,0001000,ECC,PRESERVED";
+// A read window assumes that the toc is located at offset 0,
+// so create dummy partition at arbitrary offset 0x100.
+constexpr auto line = "partition01=HBB,00000100,0001000,ECC,PRESERVED";
 constexpr auto partition = "HBB";
 char tmplt[] = "/tmp/create_read_test.XXXXXX";
 uint8_t data[8] = { 0xaa, 0x55, 0xaa, 0x66, 0x77, 0x88, 0x99, 0xab };
@@ -28,7 +30,7 @@
         0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
 };
-// offset 1 and size 6
+// offset 0x100 and size 6
 static const uint8_t create_read_window[] = {
         0x04, 0x01, 0x01, 0x00, 0x06, 0x00, 0x00, 0x00,
         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
diff --git a/test/write_flash_vpnor.cpp b/test/write_flash_vpnor.cpp
index ceb24aa..b9ba7ec 100644
--- a/test/write_flash_vpnor.cpp
+++ b/test/write_flash_vpnor.cpp
@@ -54,9 +54,9 @@
     namespace fs = std::experimental::filesystem;
     using namespace std::string_literals;
 
-    std::string  tocData = "partition01=TEST1,00000000,00000400,ECC,READONLY\n"s
-                           + "partition02=TEST2,00000000,00000008,ECC,READWRITE\n"s
-                           + "partition03=TEST3,00000000,00000400,ECC,PRESERVED"s;
+    std::string  tocData = "partition01=TEST1,00001000,00001400,ECC,READONLY\n"s
+                           + "partition02=TEST2,00002000,00002008,ECC,READWRITE\n"s
+                           + "partition03=TEST3,00003000,00003400,ECC,PRESERVED"s;
 
     std::vector<std::string> templatePaths = { "/tmp/ro.XXXXXX",
                                                "/tmp/rw.XXXXXX" ,
