diff --git a/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalIndex.C b/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalIndex.C
index a432ae889b3d8427593eca6e618b3ee26fb9ef4b..6765ee8378348427fd10708b24178a778b9013ed 100644
--- a/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalIndex.C
+++ b/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalIndex.C
@@ -27,14 +27,22 @@ License
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::globalIndex::globalIndex(const label localSize, const int tag)
+Foam::globalIndex::globalIndex
+(
+    const label localSize,
+    const int tag,
+    const bool parallel
+)
 :
     offsets_(Pstream::nProcs()+1)
 {
     labelList localSizes(Pstream::nProcs());
     localSizes[Pstream::myProcNo()] = localSize;
-    Pstream::gatherList(localSizes, tag);
-    Pstream::scatterList(localSizes, tag);
+    if (parallel)
+    {
+        Pstream::gatherList(localSizes, tag);
+        Pstream::scatterList(localSizes, tag);
+    }
 
     label offset = 0;
     offsets_[0] = 0;
diff --git a/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalIndex.H b/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalIndex.H
index 1bd83470508c40cb5283167a266612c01c7eacba..c712066f4a18218ec320e7c0b33c5acbd1449371 100644
--- a/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalIndex.H
+++ b/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalIndex.H
@@ -72,7 +72,12 @@ public:
     // Constructors
 
         //- Construct from local max size
-        globalIndex(const label localSize, const int tag = Pstream::msgType());
+        globalIndex
+        (
+            const label localSize,
+            const int tag = Pstream::msgType(),
+            const bool parallel = true              // use parallel comms
+        );
 
         //- Construct from Istream
         globalIndex(Istream& is);