diff --git a/src/OpenFOAM/meshes/polyMesh/polyMeshIO.C b/src/OpenFOAM/meshes/polyMesh/polyMeshIO.C
index d8f77272d978e0b107b1d069be65d8ce9dbaf1a4..e9a6d14069a05058ada95cb7a5074eff24490251 100644
--- a/src/OpenFOAM/meshes/polyMesh/polyMeshIO.C
+++ b/src/OpenFOAM/meshes/polyMesh/polyMeshIO.C
@@ -284,6 +284,7 @@ Foam::polyMesh::readUpdateState Foam::polyMesh::readUpdate()
             *this
         );
 
+        pointZones_.setSize(newPointZones.size());
         forAll (pointZones_, pzI)
         {
             pointZones_[pzI] = newPointZones[pzI];
@@ -304,6 +305,7 @@ Foam::polyMesh::readUpdateState Foam::polyMesh::readUpdate()
             *this
         );
 
+        faceZones_.setSize(newFaceZones.size());
         forAll (faceZones_, fzI)
         {
             faceZones_[fzI].resetAddressing
@@ -328,6 +330,7 @@ Foam::polyMesh::readUpdateState Foam::polyMesh::readUpdate()
             *this
         );
 
+        cellZones_.setSize(newCellZones.size());
         forAll (cellZones_, czI)
         {
             cellZones_[czI] = newCellZones[czI];