diff --git a/applications/utilities/preProcessing/viewFactorsGen/viewFactorsGen.C b/applications/utilities/preProcessing/viewFactorsGen/viewFactorsGen.C
index 3de11eec4d49b41408727d2e5f1cdb78d847a36b..e374e1969af43866dabf296f442576c5fb773a60 100644
--- a/applications/utilities/preProcessing/viewFactorsGen/viewFactorsGen.C
+++ b/applications/utilities/preProcessing/viewFactorsGen/viewFactorsGen.C
@@ -457,8 +457,9 @@ int main(int argc, char *argv[])
         }
     }
 
-    // Collect remote Cf and Sf on coarse mesh
-    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    // Distribute local coarse Cf and Sf for shooting rays
+    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
     List<pointField> remoteCoarseCf(Pstream::nProcs());
     List<pointField> remoteCoarseSf(Pstream::nProcs());
@@ -468,19 +469,6 @@ int main(int argc, char *argv[])
     remoteCoarseSf[Pstream::myProcNo()] = localCoarseSf;
     remoteCoarseAgg[Pstream::myProcNo()] = localAgg;
 
-
-    // Collect remote Cf and Sf on fine mesh
-    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-    List<pointField> remoteFineCf(Pstream::nProcs());
-    List<pointField> remoteFineSf(Pstream::nProcs());
-
-    remoteCoarseCf[Pstream::myProcNo()] = localCoarseCf;
-    remoteCoarseSf[Pstream::myProcNo()] = localCoarseSf;
-
-    // Distribute local coarse Cf and Sf for shooting rays
-    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
     Pstream::gatherList(remoteCoarseCf);
     Pstream::scatterList(remoteCoarseCf);
     Pstream::gatherList(remoteCoarseSf);
diff --git a/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C b/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C
index 95d0e887b67ed54f3647dfa87294c574f76ff462..1a636b1caddc40a88165ce552cf226824b975d07 100644
--- a/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C
+++ b/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -74,26 +74,6 @@ const Foam::NamedEnum<Foam::distributedTriSurfaceMesh::distributionType, 3>
 // Read my additional data from the dictionary
 bool Foam::distributedTriSurfaceMesh::read()
 {
-
-    if
-    (
-        Pstream::parRun()
-     &&
-     (
-        regIOobject::fileModificationChecking == timeStampMaster
-     || regIOobject::fileModificationChecking == inotifyMaster
-     )
-    )
-    {
-        FatalErrorIn("Foam::distributedTriSurfaceMesh::read()")
-            << "    distributedTriSurfaceMesh is being constructed\n"
-            << "    using 'timeStampMaster' or 'inotifyMaster.'\n"
-            << "    Modify the entry fileModificationChecking\n"
-            << "    in the etc/controlDict.\n"
-            << "    Use 'timeStamp' instead."
-            << exit(FatalError);
-    }
-
     // Get bb of all domains.
     procBb_.setSize(Pstream::nProcs());
 
@@ -1388,6 +1368,28 @@ Foam::distributedTriSurfaceMesh::distributedTriSurfaceMesh(const IOobject& io)
         )
     )
 {
+    if
+    (
+        Pstream::parRun()
+     && (
+            dict_.readOpt() == IOobject::MUST_READ
+         || dict_.readOpt() == IOobject::MUST_READ_IF_MODIFIED
+        )
+     && (
+            regIOobject::fileModificationChecking == timeStampMaster
+         || regIOobject::fileModificationChecking == inotifyMaster
+        )
+    )
+    {
+        FatalErrorIn("Foam::distributedTriSurfaceMesh::read()")
+            << "    distributedTriSurfaceMesh is being constructed\n"
+            << "    using 'timeStampMaster' or 'inotifyMaster.'\n"
+            << "    Modify the entry fileModificationChecking\n"
+            << "    in the etc/controlDict.\n"
+            << "    Use 'timeStamp' instead."
+            << exit(FatalError);
+    }
+
     read();
 
     reduce(bounds().min(), minOp<point>());
@@ -1450,6 +1452,28 @@ Foam::distributedTriSurfaceMesh::distributedTriSurfaceMesh
         )
     )
 {
+    if
+    (
+        Pstream::parRun()
+     && (
+            dict_.readOpt() == IOobject::MUST_READ
+         || dict_.readOpt() == IOobject::MUST_READ_IF_MODIFIED
+        )
+     && (
+            regIOobject::fileModificationChecking == timeStampMaster
+         || regIOobject::fileModificationChecking == inotifyMaster
+        )
+    )
+    {
+        FatalErrorIn("Foam::distributedTriSurfaceMesh::read()")
+            << "    distributedTriSurfaceMesh is being constructed\n"
+            << "    using 'timeStampMaster' or 'inotifyMaster.'\n"
+            << "    Modify the entry fileModificationChecking\n"
+            << "    in the etc/controlDict.\n"
+            << "    Use 'timeStamp' instead."
+            << exit(FatalError);
+    }
+
     read();
 
     reduce(bounds().min(), minOp<point>());
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun
index ecc9459467659daa24afa9c8c32d84ed8a0d4169..11d0d952ac23777da366ac89f23f14be9c4fb89b 100755
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun
@@ -5,56 +5,27 @@ cd ${0%/*} || exit 1    # run from this directory
 # Source tutorial run functions
 . $WM_PROJECT_DIR/bin/tools/RunFunctions
 
-runApplication blockMesh
-runApplication topoSet
-runApplication splitMeshRegions -cellZones -overwrite
 
-# remove fluid fields from solid regions (important for post-processing)
-for i in heater leftSolid rightSolid
-do
-   rm -f 0*/$i/{rho,mut,alphat,epsilon,k,U,p_rgh,Qr,G,IDefault}
-done
+# Setup case
+./Allrun.pre
 
-for i in bottomAir topAir heater leftSolid rightSolid
-do
-    changeDictionary -region $i > log.changeDictionary.$i 2>&1
-done
 
+#-- Run on single processor
 
+# Agglomerate patch faces
 for i in bottomAir topAir
 do
     faceAgglomerate -region $i -dict constant/viewFactorsDict > log.faceAgglomerate.$i 2>&1
 done
 
+# Generate view factors
 for i in bottomAir topAir
 do
     viewFactorsGen -region $i > log.viewFactorsGen.$i 2>&1
 done
 
-
-
-#-- Run on single processor
 runApplication `getApplication`
 
-## Run in parallel
-## Decompose
-#runApplication decomposePar -allRegions
-#
-#for i in bottomAir topAir
-#do
-#    mpirun -np 4 faceAgglomerate -region $i -dict constant/viewFactorsDict -parallel>   log.faceAgglomerate.$i 2>&1
-#done
-
-#for i in bottomAir topAir
-#do
-#    mpirun -np 4 viewFactorsGen -region $i -parallel > log.viewFactorsGen.$i 2>&1
-#done
-
-## Run
-#runParallel `getApplication` 4
-#
-## Reconstruct
-#runApplication reconstructPar -allRegions
 
 
 echo
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun-parallel b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun-parallel
new file mode 100755
index 0000000000000000000000000000000000000000..aa7672816257f850784fc9c4650444de345c34cb
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun-parallel
@@ -0,0 +1,43 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # run from this directory
+
+
+# Source tutorial run functions
+. $WM_PROJECT_DIR/bin/tools/RunFunctions
+
+
+# Setup case
+./Allrun.pre
+
+
+#-- Run in parallel
+
+# Decompose
+runApplication decomposePar -allRegions
+
+# Agglomerate patch faces
+for i in bottomAir topAir
+do
+    mpirun -np 4 faceAgglomerate -region $i -dict constant/viewFactorsDict -parallel>   log.faceAgglomerate.$i 2>&1
+done
+
+# Generate view factors
+for i in bottomAir topAir
+do
+    mpirun -np 4 viewFactorsGen -region $i -parallel > log.viewFactorsGen.$i 2>&1
+done
+
+# Run
+runParallel `getApplication` 4
+
+# Reconstruct
+runApplication reconstructPar -allRegions
+
+
+
+echo
+echo "creating files for paraview post-processing"
+echo
+paraFoam -touchAll
+
+# ----------------------------------------------------------------- end-of-file
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun.pre b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun.pre
new file mode 100755
index 0000000000000000000000000000000000000000..2e0b7cc880316c1e3373726e0448f303338477d3
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun.pre
@@ -0,0 +1,24 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # run from this directory
+
+
+# Source tutorial run functions
+. $WM_PROJECT_DIR/bin/tools/RunFunctions
+
+runApplication blockMesh
+runApplication topoSet
+runApplication splitMeshRegions -cellZones -overwrite
+
+# remove fluid fields from solid regions (important for post-processing)
+for i in heater leftSolid rightSolid
+do
+   rm -f 0*/$i/{rho,mut,alphat,epsilon,k,U,p_rgh,Qr,G,IDefault}
+done
+
+for i in bottomAir topAir heater leftSolid rightSolid
+do
+    changeDictionary -region $i > log.changeDictionary.$i 2>&1
+done
+
+
+# ----------------------------------------------------------------- end-of-file