diff --git a/applications/utilities/parallelProcessing/redistributePar/parFaFieldDistributorCache.C b/applications/utilities/parallelProcessing/redistributePar/parFaFieldDistributorCache.C
index 04d3ba8857ec59dec4944023ad3ec97413a73a90..e5c4954cc1d3b2552f0a74feac7c12c69e04a5ef 100644
--- a/applications/utilities/parallelProcessing/redistributePar/parFaFieldDistributorCache.C
+++ b/applications/utilities/parallelProcessing/redistributePar/parFaFieldDistributorCache.C
@@ -76,10 +76,14 @@ void Foam::parFaFieldDistributorCache::read
     // Missing an area mesh somewhere?
     if (areaMeshOnProc.found(false))
     {
+        const bool oldParRun = Pstream::parRun(false);
+
         // A zero-sized mesh with boundaries.
         // This is used to create zero-sized fields.
         subsetterPtr.reset(new faMeshSubset(mesh, zero{}));
 
+        Pstream::parRun(oldParRun);
+
         // Deregister from polyMesh ...
         auto& obr = const_cast<objectRegistry&>
         (
diff --git a/applications/utilities/parallelProcessing/redistributePar/redistributePar.C b/applications/utilities/parallelProcessing/redistributePar/redistributePar.C
index 15e57b0befb1845da5ccc425bfdc0032b8fffeb0..5ac924fd1c14d63b6b91c7eeaa31e7d0777ea9af 100644
--- a/applications/utilities/parallelProcessing/redistributePar/redistributePar.C
+++ b/applications/utilities/parallelProcessing/redistributePar/redistributePar.C
@@ -631,9 +631,13 @@ autoPtr<mapDistributePolyMesh> redistributeAndWrite
         // Missing a volume mesh somewhere?
         if (volMeshOnProc.found(false))
         {
+            const bool oldParRun = Pstream::parRun(false);
+
             // A zero-sized mesh with boundaries.
             // This is used to create zero-sized fields.
             subsetterPtr.reset(new fvMeshSubset(mesh, zero{}));
+
+            Pstream::parRun(oldParRun);
         }