diff --git a/applications/utilities/mesh/advanced/PDRMesh/PDRMesh.C b/applications/utilities/mesh/advanced/PDRMesh/PDRMesh.C
index 6473bb4d88b999a0067960a1fd55186eadd11411..b380a2938c7e5511bf060f9e966bbd752f374849 100644
--- a/applications/utilities/mesh/advanced/PDRMesh/PDRMesh.C
+++ b/applications/utilities/mesh/advanced/PDRMesh/PDRMesh.C
@@ -34,7 +34,8 @@ Description
     NOTE: To avoid exposing wrong fields values faceSets should include
     faces contained in the blockedCells cellset.
 
-    - coupledFaces reads coupledFacesSet to introduces mixe-coupled baffles
+    - coupledFaces reads coupledFacesSet to introduces mixed-coupled
+      duplicate baffles
 
     Subsets out the blocked cells and splits the blockedFaces and updates
     fields.
diff --git a/applications/utilities/mesh/advanced/PDRMesh/PDRMeshDict b/applications/utilities/mesh/advanced/PDRMesh/PDRMeshDict
index 94fb1d6b8cc50e15a1859586453f4fa9620545ff..62471e0ec6fbf5042983d5c7758e4563facf4af7 100644
--- a/applications/utilities/mesh/advanced/PDRMesh/PDRMeshDict
+++ b/applications/utilities/mesh/advanced/PDRMesh/PDRMeshDict
@@ -17,7 +17,8 @@ FoamFile
 //- Per faceSet the patch the faces should go into blocked baffles
 blockedFaces ((blockedFacesSet blockedFaces));
 
-//- Per faceSet the patch the faces should go into coupled baffles
+//- Per faceSet the duplicate baffles to generate (one 'normal', wall baffle,
+//  one cyclic baffle). For use with active baffle boundary conditions.
 coupledFaces
 {
     coupledFacesSet
diff --git a/applications/utilities/mesh/manipulation/createBaffles/createBaffles.C b/applications/utilities/mesh/manipulation/createBaffles/createBaffles.C
index 66bc3bcb1114b9d9f9ae0ab05e545c8ca576614d..8fbfdf933dde521ceb686f743bdff4eb1fd6a877 100644
--- a/applications/utilities/mesh/manipulation/createBaffles/createBaffles.C
+++ b/applications/utilities/mesh/manipulation/createBaffles/createBaffles.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
@@ -525,7 +525,7 @@ int main(int argc, char *argv[])
 
         Info<< "Created zone " << name
             << " at index " << zoneID
-            << " with " << n << " faces" << endl;
+            << " with " << returnReduce(n, sumOp<label>()) << " faces" << endl;
 
         mesh.faceZones().set
         (
diff --git a/applications/utilities/mesh/manipulation/createPatch/createPatch.C b/applications/utilities/mesh/manipulation/createPatch/createPatch.C
index deefbaef38c97e7fa9ebd3865540a8eedca58c80..d4780f1b10775e41a6151c3268b254b602310b76 100644
--- a/applications/utilities/mesh/manipulation/createPatch/createPatch.C
+++ b/applications/utilities/mesh/manipulation/createPatch/createPatch.C
@@ -512,6 +512,11 @@ int main(int argc, char *argv[])
     #include "addOverwriteOption.H"
     #include "addRegionOption.H"
     #include "addDictOption.H"
+    Foam::argList::addBoolOption
+    (
+        "writeObj",
+        "write obj files showing the cyclic matching process"
+    );
     #include "setRootCase.H"
     #include "createTime.H"
     runTime.functionObjects().off();
@@ -523,12 +528,13 @@ int main(int argc, char *argv[])
 
     #include "createNamedPolyMesh.H"
 
+    const bool writeObj = args.optionFound("writeObj");
+
     const word oldInstance = mesh.pointsInstance();
 
     const word dictName("createPatchDict");
     #include "setSystemMeshDictionaryIO.H"
-
-    Info<< "Reading " << dictName << nl << endl;
+    Info<< "Reading " << dictIO.instance()/dictIO.name() << nl << endl;
 
     IOdictionary dict(dictIO);
 
@@ -542,7 +548,10 @@ int main(int argc, char *argv[])
     patches.checkParallelSync(true);
 
 
-    dumpCyclicMatch("initial_", mesh);
+    if (writeObj)
+    {
+        dumpCyclicMatch("initial_", mesh);
+    }
 
     // Read patch construct info from dictionary
     PtrList<dictionary> patchSources(dict.lookup("patches"));
@@ -761,7 +770,10 @@ int main(int argc, char *argv[])
     autoPtr<mapPolyMesh> map = meshMod.changeMesh(mesh, true);
     mesh.movePoints(map().preMotionPoints());
 
-    dumpCyclicMatch("coupled_", mesh);
+    if (writeObj)
+    {
+        dumpCyclicMatch("coupled_", mesh);
+    }
 
     // Synchronise points.
     if (!pointSync)
@@ -872,7 +884,10 @@ int main(int argc, char *argv[])
     filterPatches(mesh, addedPatchNames);
 
 
-    dumpCyclicMatch("final_", mesh);
+    if (writeObj)
+    {
+        dumpCyclicMatch("final_", mesh);
+    }
 
 
     // Set the precision of the points data to 10
diff --git a/applications/utilities/mesh/manipulation/flattenMesh/flattenMesh.C b/applications/utilities/mesh/manipulation/flattenMesh/flattenMesh.C
index 6aed660ed8b9359b1ab8877ba8b23d964e48594e..1f9480a5c45ee071061c85b96a31d32b744b6598 100644
--- a/applications/utilities/mesh/manipulation/flattenMesh/flattenMesh.C
+++ b/applications/utilities/mesh/manipulation/flattenMesh/flattenMesh.C
@@ -96,6 +96,8 @@ int main(int argc, char *argv[])
     Info<< "Writing points into directory " << points.path() << nl << endl;
     points.write();
 
+    Info<< nl << "End" << nl << endl;
+
     return 0;
 }
 
diff --git a/applications/utilities/mesh/manipulation/mergeMeshes/mergeMeshes.C b/applications/utilities/mesh/manipulation/mergeMeshes/mergeMeshes.C
index 46f59e91e8e63ac669a7d72d33776eebd0a61bed..62ef9e13fde805a7b5262e9b72cb707709bef4d1 100644
--- a/applications/utilities/mesh/manipulation/mergeMeshes/mergeMeshes.C
+++ b/applications/utilities/mesh/manipulation/mergeMeshes/mergeMeshes.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-2015 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -62,7 +62,6 @@ int main(int argc, char *argv[])
         "merge two meshes"
     );
 
-    argList::noParallel();
     #include "addOverwriteOption.H"
 
     argList::validArgs.append("masterCase");
@@ -97,6 +96,18 @@ int main(int argc, char *argv[])
     word addRegion = polyMesh::defaultRegion;
     args.optionReadIfPresent("addRegion", addRegion);
 
+    // Since we don't use argList processor directory detection, add it to
+    // the casename ourselves so it triggers the logic inside TimePath.
+    const fileName& cName = args.caseName();
+    std::string::size_type pos = cName.find("processor");
+    if (pos != string::npos && pos != 0)
+    {
+        fileName processorName = cName.substr(pos, cName.size()-pos);
+        masterCase += '/' + processorName;
+        addCase += '/' + processorName;
+    }
+
+
     getRootCase(masterCase);
     getRootCase(addCase);
 
diff --git a/applications/utilities/mesh/manipulation/mirrorMesh/mirrorFvMesh.C b/applications/utilities/mesh/manipulation/mirrorMesh/mirrorFvMesh.C
index a13f5ace4350fbd6e32c19c10854583ff2dfcb5a..da835851b4bdd2a1175a50ebcab3e22e9d3abad3 100644
--- a/applications/utilities/mesh/manipulation/mirrorMesh/mirrorFvMesh.C
+++ b/applications/utilities/mesh/manipulation/mirrorMesh/mirrorFvMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -243,8 +243,9 @@ Foam::mirrorFvMesh::mirrorFvMesh(const IOobject& io)
 
     // Mirror boundary faces patch by patch
 
-    wordList newPatchTypes(boundary().size());
-    wordList newPatchNames(boundary().size());
+
+    labelList newToOldPatch(boundary().size(), -1);
+
     labelList newPatchSizes(boundary().size(), -1);
     labelList newPatchStarts(boundary().size(), -1);
     label nNewPatches = 0;
@@ -303,8 +304,8 @@ Foam::mirrorFvMesh::mirrorFvMesh(const IOobject& io)
         // If patch exists, grab the name and type of the original patch
         if (nNewFaces > newPatchStarts[nNewPatches])
         {
-            newPatchTypes[nNewPatches] = boundaryMesh()[patchI].type();
-            newPatchNames[nNewPatches] = boundaryMesh()[patchI].name();
+            newToOldPatch[nNewPatches] = patchI;
+
             newPatchSizes[nNewPatches] =
                 nNewFaces - newPatchStarts[nNewPatches];
 
@@ -316,8 +317,7 @@ Foam::mirrorFvMesh::mirrorFvMesh(const IOobject& io)
     newFaces.setSize(nNewFaces);
     Info<< " New faces: " << nNewFaces << endl;
 
-    newPatchTypes.setSize(nNewPatches);
-    newPatchNames.setSize(nNewPatches);
+    newToOldPatch.setSize(nNewPatches);
     newPatchSizes.setSize(nNewPatches);
     newPatchStarts.setSize(nNewPatches);
 
@@ -377,18 +377,16 @@ Foam::mirrorFvMesh::mirrorFvMesh(const IOobject& io)
     fvMesh& pMesh = *mirrorMeshPtr_;
 
     // Add the boundary patches
-    List<polyPatch*> p(newPatchTypes.size());
+    List<polyPatch*> p(newPatchSizes.size());
 
     forAll(p, patchI)
     {
-        p[patchI] = polyPatch::New
+        p[patchI] = boundaryMesh()[newToOldPatch[patchI]].clone
         (
-            newPatchTypes[patchI],
-            newPatchNames[patchI],
-            newPatchSizes[patchI],
-            newPatchStarts[patchI],
+            pMesh.boundaryMesh(),
             patchI,
-            pMesh.boundaryMesh()
+            newPatchSizes[patchI],
+            newPatchStarts[patchI]
         ).ptr();
     }
 
diff --git a/applications/utilities/mesh/manipulation/mirrorMesh/mirrorMesh.C b/applications/utilities/mesh/manipulation/mirrorMesh/mirrorMesh.C
index f90ed99eef87a9c0af81444ad529e51044d51ec7..f7383289cb8bfa8fd58c89c8777abc33ba3a60d7 100644
--- a/applications/utilities/mesh/manipulation/mirrorMesh/mirrorMesh.C
+++ b/applications/utilities/mesh/manipulation/mirrorMesh/mirrorMesh.C
@@ -67,7 +67,7 @@ int main(int argc, char *argv[])
     Info<< "Writing mirrored mesh" << endl;
     mesh.mirrorMesh().write();
 
-    Info<< "End" << endl;
+    Info<< "End" << nl << endl;
 
     return 0;
 }
diff --git a/applications/utilities/mesh/manipulation/renumberMesh/renumberMesh.C b/applications/utilities/mesh/manipulation/renumberMesh/renumberMesh.C
index 6b3b632467cc425280080bc13c0505cdf52cb39a..4e1933ac44d96a8a4c22faee75d2751323af2294 100644
--- a/applications/utilities/mesh/manipulation/renumberMesh/renumberMesh.C
+++ b/applications/utilities/mesh/manipulation/renumberMesh/renumberMesh.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
-     \\/     M anispulation  |
+     \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -46,6 +46,9 @@ Description
 #include "zeroGradientFvPatchFields.H"
 #include "CuthillMcKeeRenumber.H"
 #include "fvMeshSubset.H"
+#include "cellSet.H"
+#include "faceSet.H"
+#include "pointSet.H"
 
 #ifdef FOAM_USE_ZOLTAN
     #include "zoltanRenumber.H"
@@ -634,6 +637,12 @@ int main(int argc, char *argv[])
         "calculate the rms of the frontwidth"
     );
 
+
+    #include "setRootCase.H"
+    #include "createTime.H"
+    runTime.functionObjects().off();
+
+
     // Force linker to include zoltan symbols. This section is only needed since
     // Zoltan is a static library
     #ifdef FOAM_USE_ZOLTAN
@@ -641,9 +650,6 @@ int main(int argc, char *argv[])
     (void)zoltanRenumber::typeName;
     #endif
 
-    #include "setRootCase.H"
-    #include "createTime.H"
-    runTime.functionObjects().off();
 
     // Get times list
     instantList Times = runTime.times();
@@ -700,6 +706,7 @@ int main(int argc, char *argv[])
     bool writeMaps = false;
     bool orderPoints = false;
     label blockSize = 0;
+    bool renumberSets = true;
 
     // Construct renumberMethod
     autoPtr<IOdictionary> renumberDictPtr;
@@ -760,6 +767,8 @@ int main(int argc, char *argv[])
             Info<< "Writing renumber maps (new to old) to polyMesh." << nl
                 << endl;
         }
+
+        renumberSets = renumberDict.lookupOrDefault("renumberSets", true);
     }
     else
     {
@@ -861,6 +870,71 @@ int main(int argc, char *argv[])
     PtrList<surfaceTensorField> stFlds;
     ReadFields(mesh, objects, stFlds);
 
+    // Read point fields.
+
+    PtrList<pointScalarField> psFlds;
+    ReadFields(pointMesh::New(mesh), objects, psFlds);
+
+    PtrList<pointVectorField> pvFlds;
+    ReadFields(pointMesh::New(mesh), objects, pvFlds);
+
+    PtrList<pointSphericalTensorField> pstFlds;
+    ReadFields(pointMesh::New(mesh), objects, pstFlds);
+
+    PtrList<pointSymmTensorField> psymtFlds;
+    ReadFields(pointMesh::New(mesh), objects, psymtFlds);
+
+    PtrList<pointTensorField> ptFlds;
+    ReadFields(pointMesh::New(mesh), objects, ptFlds);
+
+    // Read sets
+    PtrList<cellSet> cellSets;
+    PtrList<faceSet> faceSets;
+    PtrList<pointSet> pointSets;
+    if (renumberSets)
+    {
+        // Read sets
+        IOobjectList objects(mesh, mesh.facesInstance(), "polyMesh/sets");
+        {
+            IOobjectList cSets(objects.lookupClass(cellSet::typeName));
+            if (cSets.size())
+            {
+                Info<< "Reading cellSets:" << endl;
+                forAllConstIter(IOobjectList, cSets, iter)
+                {
+                    cellSets.append(new cellSet(*iter()));
+                    Info<< "    " << cellSets.last().name() << endl;
+                }
+            }
+        }
+        {
+            IOobjectList fSets(objects.lookupClass(faceSet::typeName));
+            if (fSets.size())
+            {
+                Info<< "Reading faceSets:" << endl;
+                forAllConstIter(IOobjectList, fSets, iter)
+                {
+                    faceSets.append(new faceSet(*iter()));
+                    Info<< "    " << faceSets.last().name() << endl;
+                }
+            }
+        }
+        {
+            IOobjectList pSets(objects.lookupClass(pointSet::typeName));
+            if (pSets.size())
+            {
+                Info<< "Reading pointSets:" << endl;
+                forAllConstIter(IOobjectList, pSets, iter)
+                {
+                    pointSets.append(new pointSet(*iter()));
+                    Info<< "    " << pointSets.last().name() << endl;
+                }
+            }
+        }
+    }
+
+
+
     Info<< endl;
 
     // From renumbering:
@@ -1055,7 +1129,6 @@ int main(int argc, char *argv[])
     mesh.updateMesh(map);
 
     // Update proc maps
-    if (cellProcAddressing.headerOk())
     if
     (
         cellProcAddressing.headerOk()
@@ -1070,7 +1143,6 @@ int main(int argc, char *argv[])
             UIndirectList<label>(cellProcAddressing, map().cellMap())
         );
     }
-    if (faceProcAddressing.headerOk())
     if
     (
         faceProcAddressing.headerOk()
@@ -1101,7 +1173,6 @@ int main(int argc, char *argv[])
             }
         }
     }
-    if (pointProcAddressing.headerOk())
     if
     (
         pointProcAddressing.headerOk()
@@ -1226,47 +1297,80 @@ int main(int argc, char *argv[])
 
     mesh.write();
     if (cellProcAddressing.headerOk())
-    if
-    (
-        cellProcAddressing.headerOk()
-     && cellProcAddressing.size() == mesh.nCells()
-    )
     {
         cellProcAddressing.instance() = mesh.facesInstance();
-        cellProcAddressing.write();
+        if (cellProcAddressing.size() == mesh.nCells())
+        {
+            cellProcAddressing.write();
+        }
+        else
+        {
+            // procAddressing no longer valid. Delete it.
+            const fileName fName(cellProcAddressing.filePath());
+            if (fName.size())
+            {
+                Info<< "Deleting inconsistent processor cell decomposition"
+                    << " map " << fName << endl;
+                rm(fName);
+            }
+        }
     }
     if (faceProcAddressing.headerOk())
-    if
-    (
-        faceProcAddressing.headerOk()
-     && faceProcAddressing.size() == mesh.nFaces()
-    )
     {
         faceProcAddressing.instance() = mesh.facesInstance();
-        faceProcAddressing.write();
+        if (faceProcAddressing.size() == mesh.nFaces())
+        {
+            faceProcAddressing.write();
+        }
+        else
+        {
+            const fileName fName(faceProcAddressing.filePath());
+            if (fName.size())
+            {
+                Info<< "Deleting inconsistent processor face decomposition"
+                    << " map " << fName << endl;
+                rm(fName);
+            }
+        }
     }
+
     if (pointProcAddressing.headerOk())
-    if
-    (
-        pointProcAddressing.headerOk()
-     && pointProcAddressing.size() == mesh.nPoints()
-    )
     {
         pointProcAddressing.instance() = mesh.facesInstance();
-        pointProcAddressing.write();
+        if (pointProcAddressing.size() == mesh.nPoints())
+        {
+            pointProcAddressing.write();
+        }
+        else
+        {
+            const fileName fName(pointProcAddressing.filePath());
+            if (fName.size())
+            {
+                Info<< "Deleting inconsistent processor point decomposition"
+                    << " map " << fName << endl;
+                rm(fName);
+            }
+        }
     }
     if (boundaryProcAddressing.headerOk())
-    if
-    (
-        boundaryProcAddressing.headerOk()
-     && boundaryProcAddressing.size() == mesh.boundaryMesh().size()
-    )
     {
         boundaryProcAddressing.instance() = mesh.facesInstance();
-        boundaryProcAddressing.write();
+        if (boundaryProcAddressing.size() == mesh.boundaryMesh().size())
+        {
+            boundaryProcAddressing.write();
+        }
+        else
+        {
+            const fileName fName(boundaryProcAddressing.filePath());
+            if (fName.size())
+            {
+                Info<< "Deleting inconsistent processor patch decomposition"
+                    << " map " << fName << endl;
+                rm(fName);
+            }
+        }
     }
 
-
     if (writeMaps)
     {
         // For debugging: write out region
@@ -1331,6 +1435,28 @@ int main(int argc, char *argv[])
         ).write();
     }
 
+    if (renumberSets)
+    {
+        forAll(cellSets, i)
+        {
+            cellSets[i].updateMesh(map());
+            cellSets[i].instance() = mesh.facesInstance();
+            cellSets[i].write();
+        }
+        forAll(faceSets, i)
+        {
+            faceSets[i].updateMesh(map());
+            faceSets[i].instance() = mesh.facesInstance();
+            faceSets[i].write();
+        }
+        forAll(pointSets, i)
+        {
+            pointSets[i].updateMesh(map());
+            pointSets[i].instance() = mesh.facesInstance();
+            pointSets[i].write();
+        }
+    }
+
     Info<< "\nEnd\n" << endl;
 
     return 0;
diff --git a/applications/utilities/mesh/manipulation/renumberMesh/renumberMeshDict b/applications/utilities/mesh/manipulation/renumberMesh/renumberMeshDict
index 2cd1a68ca56dd338283239af10e3a668448a1014..8b44fd1c4afaa465e1dd53c483f8424817bb866f 100644
--- a/applications/utilities/mesh/manipulation/renumberMesh/renumberMeshDict
+++ b/applications/utilities/mesh/manipulation/renumberMesh/renumberMeshDict
@@ -34,6 +34,8 @@ sortCoupledFaceCells false;
 // Optional entry: sort points into internal and boundary points
 //orderPoints false;
 
+// Optional: suppress renumbering cellSets,faceSets,pointSets
+//renumberSets false;
 
 
 method          CuthillMcKee;
diff --git a/applications/utilities/mesh/manipulation/splitMesh/splitMesh.C b/applications/utilities/mesh/manipulation/splitMesh/splitMesh.C
index f1ed44e653f93b9c8899231e0fdf3ec9a0e1105b..a6d53a201c4b5ee03ed72d8f05b29d0f41644789 100644
--- a/applications/utilities/mesh/manipulation/splitMesh/splitMesh.C
+++ b/applications/utilities/mesh/manipulation/splitMesh/splitMesh.C
@@ -287,7 +287,8 @@ int main(int argc, char *argv[])
             << exit(FatalError);
     }
 
-    Info<< nl << "end" << endl;
+    Info<< nl << "End" << nl << endl;
+
     return 0;
 }
 
diff --git a/applications/utilities/mesh/manipulation/stitchMesh/stitchMesh.C b/applications/utilities/mesh/manipulation/stitchMesh/stitchMesh.C
index 8e64c28a38107006fb07d76cfb4b3e094b3b937b..d1db6fb365315dac65fcab5575e3f60692d52f45 100644
--- a/applications/utilities/mesh/manipulation/stitchMesh/stitchMesh.C
+++ b/applications/utilities/mesh/manipulation/stitchMesh/stitchMesh.C
@@ -499,7 +499,7 @@ int main(int argc, char *argv[])
     // Write fields
     runTime.write();
 
-    Info<< nl << "end" << endl;
+    Info<< nl << "End" << nl <<  endl;
 
     return 0;
 }
diff --git a/applications/utilities/mesh/manipulation/subsetMesh/subsetMesh.C b/applications/utilities/mesh/manipulation/subsetMesh/subsetMesh.C
index 63d91ac1788608a0e09c3813511dd664e3579d75..9a3a72248de8ac3a5cf18731d2ac8e868b1a1e72 100644
--- a/applications/utilities/mesh/manipulation/subsetMesh/subsetMesh.C
+++ b/applications/utilities/mesh/manipulation/subsetMesh/subsetMesh.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
@@ -41,11 +41,86 @@ Description
 #include "cellSet.H"
 #include "IOobjectList.H"
 #include "volFields.H"
+#include "topoDistanceData.H"
+#include "FaceCellWave.H"
 
 using namespace Foam;
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
+labelList nearestPatch(const polyMesh& mesh, const labelList& patchIDs)
+{
+    const polyBoundaryMesh& pbm = mesh.boundaryMesh();
+
+    // Count number of faces in exposedPatchIDs
+    label nFaces = 0;
+    forAll(patchIDs, i)
+    {
+        const polyPatch& pp = pbm[patchIDs[i]];
+        nFaces += pp.size();
+    }
+
+    // Field on cells and faces.
+    List<topoDistanceData> cellData(mesh.nCells());
+    List<topoDistanceData> faceData(mesh.nFaces());
+
+    // Start of changes
+    labelList patchFaces(nFaces);
+    List<topoDistanceData> patchData(nFaces);
+    nFaces = 0;
+    forAll(patchIDs, i)
+    {
+        label patchI = patchIDs[i];
+        const polyPatch& pp = pbm[patchI];
+
+        forAll(pp, i)
+        {
+            patchFaces[nFaces] = pp.start()+i;
+            patchData[nFaces] = topoDistanceData(patchI, 0);
+            nFaces++;
+        }
+    }
+
+    // Propagate information inwards
+    FaceCellWave<topoDistanceData> deltaCalc
+    (
+        mesh,
+        patchFaces,
+        patchData,
+        faceData,
+        cellData,
+        mesh.globalData().nTotalCells()+1
+    );
+
+    // And extract
+
+    labelList nearest(mesh.nFaces());
+
+    bool haveWarned = false;
+    forAll(faceData, faceI)
+    {
+        if (!faceData[faceI].valid(deltaCalc.data()))
+        {
+            if (!haveWarned)
+            {
+                WarningIn("meshRefinement::nearestPatch(..)")
+                    << "Did not visit some faces, e.g. face " << faceI
+                    << " at " << mesh.faceCentres()[faceI] << endl
+                    << "Using patch " << patchIDs[0] << " as nearest"
+                    << endl;
+                haveWarned = true;
+            }
+            nearest[faceI] = patchIDs[0];
+        }
+        else
+        {
+            nearest[faceI] = faceData[faceI].data();
+        }
+    }
+
+    return nearest;
+}
+
 
 template<class Type>
 void subsetVolFields
@@ -150,6 +225,40 @@ void subsetPointFields
 }
 
 
+template<class Type>
+void subsetDimensionedFields
+(
+    const fvMeshSubset& subsetter,
+    const wordList& fieldNames,
+    PtrList<DimensionedField<Type, volMesh> >& subFields
+)
+{
+    const fvMesh& baseMesh = subsetter.baseMesh();
+
+    forAll(fieldNames, i)
+    {
+        const word& fieldName = fieldNames[i];
+
+        Info<< "Subsetting field " << fieldName << endl;
+
+        DimensionedField<Type, volMesh> fld
+        (
+            IOobject
+            (
+                fieldName,
+                baseMesh.time().timeName(),
+                baseMesh,
+                IOobject::MUST_READ,
+                IOobject::NO_WRITE
+            ),
+            baseMesh
+        );
+
+        subFields.set(i, subsetter.interpolate(fld));
+    }
+}
+
+
 
 int main(int argc, char *argv[])
 {
@@ -169,6 +278,13 @@ int main(int argc, char *argv[])
         "'oldInternalFaces'"
     );
     argList::addOption
+    (
+        "patches",
+        "names",
+        "add exposed internal faces to nearest of specified patches"
+        " instead of to 'oldInternalFaces'"
+    );
+    argList::addOption
     (
         "resultTime",
         "time",
@@ -207,15 +323,19 @@ int main(int argc, char *argv[])
     // Create mesh subsetting engine
     fvMeshSubset subsetter(mesh);
 
-    label patchI = -1;
+    labelList exposedPatchIDs;
 
     if (args.optionFound("patch"))
     {
         const word patchName = args["patch"];
 
-        patchI = mesh.boundaryMesh().findPatchID(patchName);
+        exposedPatchIDs = labelList
+        (
+            1,
+            mesh.boundaryMesh().findPatchID(patchName)
+        );
 
-        if (patchI == -1)
+        if (exposedPatchIDs[0] == -1)
         {
             FatalErrorIn(args.executable()) << "Illegal patch " << patchName
                 << nl << "Valid patches are " << mesh.boundaryMesh().names()
@@ -225,17 +345,53 @@ int main(int argc, char *argv[])
         Info<< "Adding exposed internal faces to patch " << patchName << endl
             << endl;
     }
+    else if (args.optionFound("patches"))
+    {
+        const wordReList patchNames(args.optionRead<wordReList>("patches"));
+
+        exposedPatchIDs = mesh.boundaryMesh().patchSet(patchNames).sortedToc();
+
+        Info<< "Adding exposed internal faces to nearest of patches "
+            << patchNames << endl << endl;
+    }
     else
     {
         Info<< "Adding exposed internal faces to a patch called"
             << " \"oldInternalFaces\" (created if necessary)" << endl
             << endl;
+        exposedPatchIDs = labelList(1, label(-1));
     }
 
 
     cellSet currentSet(mesh, setName);
 
-    subsetter.setLargeCellSubset(currentSet, patchI, true);
+    if (exposedPatchIDs.size() == 1)
+    {
+        subsetter.setLargeCellSubset(currentSet, exposedPatchIDs[0], true);
+    }
+    else
+    {
+
+        // Find per face the nearest patch
+        labelList nearestExposedPatch(nearestPatch(mesh, exposedPatchIDs));
+
+        labelList region(mesh.nCells(), 0);
+        forAllConstIter(cellSet, currentSet, iter)
+        {
+            region[iter.key()] = 1;
+        }
+
+        labelList exposedFaces(subsetter.getExposedFaces(region, 1, true));
+        subsetter.setLargeCellSubset
+        (
+            region,
+            1,
+            exposedFaces,
+            UIndirectList<label>(nearestExposedPatch, exposedFaces)(),
+            true
+        );
+    }
+
 
     IOobjectList objects(mesh, runTime.timeName());
 
@@ -361,6 +517,42 @@ int main(int argc, char *argv[])
     subsetPointFields(subsetter, pMesh, pointTensorNames, pointTensorFlds);
 
 
+    // Read dimensioned fields and subset
+    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    typedef volScalarField::DimensionedInternalField dimScalType;
+    wordList scalarDimNames(objects.names(dimScalType::typeName));
+    PtrList<dimScalType> scalarDimFlds(scalarDimNames.size());
+    subsetDimensionedFields(subsetter, scalarDimNames, scalarDimFlds);
+
+    typedef volVectorField::DimensionedInternalField dimVecType;
+    wordList vectorDimNames(objects.names(dimVecType::typeName));
+    PtrList<dimVecType> vectorDimFlds(vectorDimNames.size());
+    subsetDimensionedFields(subsetter, vectorDimNames, vectorDimFlds);
+
+    typedef volSphericalTensorField::DimensionedInternalField dimSphereType;
+    wordList sphericalTensorDimNames(objects.names(dimSphereType::typeName));
+    PtrList<dimSphereType> sphericalTensorDimFlds
+    (
+        sphericalTensorDimNames.size()
+    );
+    subsetDimensionedFields
+    (
+        subsetter,
+        sphericalTensorDimNames,
+        sphericalTensorDimFlds
+    );
+
+    typedef volSymmTensorField::DimensionedInternalField dimSymmTensorType;
+    wordList symmTensorDimNames(objects.names(dimSymmTensorType::typeName));
+    PtrList<dimSymmTensorType> symmTensorDimFlds(symmTensorDimNames.size());
+    subsetDimensionedFields(subsetter, symmTensorDimNames, symmTensorDimFlds);
+
+    typedef volTensorField::DimensionedInternalField dimTensorType;
+    wordList tensorDimNames(objects.names(dimTensorType::typeName));
+    PtrList<dimTensorType> tensorDimFlds(tensorDimNames.size());
+    subsetDimensionedFields(subsetter, tensorDimNames, tensorDimFlds);
+
 
     // Write mesh and fields to new time
     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -461,6 +653,33 @@ int main(int argc, char *argv[])
         pointTensorFlds[i].write();
     }
 
+    // DimensionedFields
+    forAll(scalarDimFlds, i)
+    {
+        scalarDimFlds[i].rename(scalarDimNames[i]);
+        scalarDimFlds[i].write();
+    }
+    forAll(vectorDimFlds, i)
+    {
+        vectorDimFlds[i].rename(vectorDimNames[i]);
+        vectorDimFlds[i].write();
+    }
+    forAll(sphericalTensorDimFlds, i)
+    {
+        sphericalTensorDimFlds[i].rename(sphericalTensorDimNames[i]);
+        sphericalTensorDimFlds[i].write();
+    }
+    forAll(symmTensorDimFlds, i)
+    {
+        symmTensorDimFlds[i].rename(symmTensorDimNames[i]);
+        symmTensorDimFlds[i].write();
+    }
+    forAll(tensorDimFlds, i)
+    {
+        tensorDimFlds[i].rename(tensorDimNames[i]);
+        tensorDimFlds[i].write();
+    }
+
 
     Info<< "\nEnd\n" << endl;
 
diff --git a/applications/utilities/mesh/manipulation/topoSet/topoSetDict b/applications/utilities/mesh/manipulation/topoSet/topoSetDict
index 5f0e5c0b39df3b00054a35303fab1e9bad40f819..045486fc217a1af988242d40a4ac5e4a53372eb5 100644
--- a/applications/utilities/mesh/manipulation/topoSet/topoSetDict
+++ b/applications/utilities/mesh/manipulation/topoSet/topoSetDict
@@ -372,19 +372,22 @@ FoamFile
 //                          //           is the master side)
 //    }
 //
+//    // Select based on faceSet, using supplied normal to determine orientation
+//    source setAndNormalToFaceZone;
+//    sourceInfo
+//    {
+//        faceSet f0;       // name of faceSet
+//        normal (1 0 0);   // normal orientation
+//    }
+//
 //    // Select based on surface. Orientation from normals on surface
+//    source  searchableSurfaceToFaceZone;
+//    sourceInfo
 //    {
-//        name    fz0;
-//        type    faceZoneSet;
-//        action  new;
-//        source  searchableSurfaceToFaceZone;
-//        sourceInfo
-//        {
-//            surface searchableSphere;
-//            centre  (0.05 0.05 0.005);
-//            radius  0.025;
-//            //name  sphere.stl; // Optional name if surface triSurfaceMesh
-//        }
+//        surface searchableSphere;
+//        centre  (0.05 0.05 0.005);
+//        radius  0.025;
+//        //name  sphere.stl; // Optional name if surface triSurfaceMesh
 //    }
 //
 //
@@ -413,7 +416,7 @@ actions
         name    c0;
         type    cellSet;
         action  new;
-        source labelToCell;
+        source  labelToCell;
         sourceInfo
         {
             value (12 13 56);
diff --git a/applications/utilities/mesh/manipulation/transformPoints/transformPoints.C b/applications/utilities/mesh/manipulation/transformPoints/transformPoints.C
index 692cfd76db3da1e1a45d1ce857248e789ed3c97f..d2181b25d754263e6500c070a8752622628868fe 100644
--- a/applications/utilities/mesh/manipulation/transformPoints/transformPoints.C
+++ b/applications/utilities/mesh/manipulation/transformPoints/transformPoints.C
@@ -308,6 +308,8 @@ int main(int argc, char *argv[])
     Info<< "Writing points into directory " << points.path() << nl << endl;
     points.write();
 
+    Info<< nl << "End" << nl << endl;
+
     return 0;
 }
 
diff --git a/applications/utilities/miscellaneous/foamDebugSwitches/foamDebugSwitches.C b/applications/utilities/miscellaneous/foamDebugSwitches/foamDebugSwitches.C
index 1943b7d631b49ce7503f7429c5238b96e2e5ece1..1b5670fc83cd767d22cf7b4dec189333e8b11c3f 100644
--- a/applications/utilities/miscellaneous/foamDebugSwitches/foamDebugSwitches.C
+++ b/applications/utilities/miscellaneous/foamDebugSwitches/foamDebugSwitches.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
@@ -158,9 +158,7 @@ int main(int argc, char *argv[])
         Info<< "OptimisationSwitches: " << currOpt << endl;
     }
 
-
-
-    Info<< "done" << endl;
+    Info<< nl << "End" << nl << endl;
 
     return 0;
 }
diff --git a/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK.C b/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK.C
index 2ef824b16941d7f70f1d4d8ab5c277f3ad233170..157af431bf7fb4a0d7cdcc5a16b5ec254b58d719 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK.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
@@ -601,6 +601,53 @@ int main(int argc, char *argv[])
               + vtf.size();
 
 
+        // Construct dimensioned fields
+        PtrList<volScalarField::DimensionedInternalField> dsf;
+        PtrList<volVectorField::DimensionedInternalField> dvf;
+        PtrList<volSphericalTensorField::DimensionedInternalField> dSpheretf;
+        PtrList<volSymmTensorField::DimensionedInternalField> dSymmtf;
+        PtrList<volTensorField::DimensionedInternalField> dtf;
+
+        if (!specifiedFields || selectedFields.size())
+        {
+            readFields(vMesh, vMesh.baseMesh(), objects, selectedFields, dsf);
+            print("    volScalarFields::Internal          :", Info, dsf);
+
+            readFields(vMesh, vMesh.baseMesh(), objects, selectedFields, dvf);
+            print("    volVectorFields::Internal          :", Info, dvf);
+
+            readFields
+            (
+                vMesh,
+                vMesh.baseMesh(),
+                objects,
+                selectedFields,
+                dSpheretf
+            );
+            print("    volSphericalTensorFields::Internal :", Info, dSpheretf);
+
+            readFields
+            (
+                vMesh,
+                vMesh.baseMesh(),
+                objects,
+                selectedFields,
+                dSymmtf
+            );
+            print("    volSymmTensorFields::Internal      :", Info, dSymmtf);
+
+            readFields(vMesh, vMesh.baseMesh(), objects, selectedFields, dtf);
+            print("    volTensorFields::Internal          :", Info, dtf);
+        }
+
+        label nDimFields =
+                dsf.size()
+              + dvf.size()
+              + dSpheretf.size()
+              + dSymmtf.size()
+              + dtf.size();
+
+
         // Construct pointMesh only if nessecary since constructs edge
         // addressing (expensive on polyhedral meshes)
         if (noPointValues)
@@ -701,7 +748,7 @@ int main(int argc, char *argv[])
             (
                 writer.os(),
                 vMesh.nFieldCells(),
-                1+nVolFields
+                1 + nVolFields + nDimFields
             );
 
             // Write cellID field
@@ -714,13 +761,20 @@ int main(int argc, char *argv[])
             writer.write(vSymmtf);
             writer.write(vtf);
 
+            // Write dimensionedFields
+            writer.write<scalar, volMesh>(dsf);
+            writer.write<vector, volMesh>(dvf);
+            writer.write<sphericalTensor, volMesh>(dSpheretf);
+            writer.write<symmTensor, volMesh>(dSymmtf);
+            writer.write<tensor, volMesh>(dtf);
+
             if (!noPointValues)
             {
                 writeFuns::writePointDataHeader
                 (
                     writer.os(),
                     vMesh.nFieldPoints(),
-                    nVolFields+nPointFields
+                    nVolFields + nDimFields + nPointFields
                 );
 
                 // pointFields
@@ -737,6 +791,12 @@ int main(int argc, char *argv[])
                 writer.write(pInterp, vSpheretf);
                 writer.write(pInterp, vSymmtf);
                 writer.write(pInterp, vtf);
+
+                writer.write<scalar, volMesh>(pInterp, dsf);
+                writer.write<vector, volMesh>(pInterp, dvf);
+                writer.write<sphericalTensor, volMesh>(pInterp, dSpheretf);
+                writer.write<symmTensor, volMesh>(pInterp, dSymmtf);
+                writer.write<tensor, volMesh>(pInterp, dtf);
             }
         }
 
diff --git a/applications/utilities/postProcessing/dataConversion/foamToVTK/internalWriter.H b/applications/utilities/postProcessing/dataConversion/foamToVTK/internalWriter.H
index 9c456f843c7920d70d92d02aebe6027bbdac94c3..fa805c37b7cdbc5b6cf45b0fc6ed953694e93b60 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToVTK/internalWriter.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToVTK/internalWriter.H
@@ -94,6 +94,13 @@ public:
             const PtrList<GeometricField<Type, PatchField, GeoMesh> >&
         );
 
+        //- Write generic internal fields
+        template<class Type, class GeoMesh>
+        void write
+        (
+            const PtrList<DimensionedField<Type, volMesh> >& flds
+        );
+
         //- Interpolate and write volFields
         template<class Type>
         void write
@@ -101,6 +108,14 @@ public:
             const volPointInterpolation&,
             const PtrList<GeometricField<Type, fvPatchField, volMesh> >&
         );
+
+        //- Interpolate and internal fields
+        template<class Type, class GeoMesh>
+        void write
+        (
+            const volPointInterpolation&,
+            const PtrList<DimensionedField<Type, volMesh> >&
+        );
 };
 
 
diff --git a/applications/utilities/postProcessing/dataConversion/foamToVTK/internalWriterTemplates.C b/applications/utilities/postProcessing/dataConversion/foamToVTK/internalWriterTemplates.C
index 853caca75bad51e58b8c369efc7454e40f33c45f..797f2d5661bcf36e85d073ab57a1554011a69aab 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToVTK/internalWriterTemplates.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToVTK/internalWriterTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -41,6 +41,19 @@ void Foam::internalWriter::write
 }
 
 
+template<class Type, class GeoMesh>
+void Foam::internalWriter::write
+(
+    const PtrList<DimensionedField<Type, volMesh> >& flds
+)
+{
+    forAll(flds, i)
+    {
+        writeFuns::write(os_, binary_, flds[i], vMesh_);
+    }
+}
+
+
 template<class Type>
 void Foam::internalWriter::write
 (
@@ -62,4 +75,25 @@ void Foam::internalWriter::write
 }
 
 
+template<class Type, class GeoMesh>
+void Foam::internalWriter::write
+(
+    const volPointInterpolation& pInterp,
+    const PtrList<DimensionedField<Type, volMesh> >& flds
+)
+{
+    forAll(flds, i)
+    {
+        writeFuns::write
+        (
+            os_,
+            binary_,
+            flds[i],
+            pInterp.interpolate(flds[i])(),
+            vMesh_
+        );
+    }
+}
+
+
 // ************************************************************************* //
diff --git a/applications/utilities/postProcessing/dataConversion/foamToVTK/writeFuns.H b/applications/utilities/postProcessing/dataConversion/foamToVTK/writeFuns.H
index 11f18b3d764cab397493cb5e5a18e4a6514f1529..56df1d5237d3690611c62c9046b76a3fc8375390 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToVTK/writeFuns.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToVTK/writeFuns.H
@@ -113,7 +113,7 @@ public:
     (
         std::ostream&,
         const bool binary,
-        const GeometricField<Type, fvPatchField, volMesh>&,
+        const DimensionedField<Type, volMesh>&,
         const vtkMesh&
     );
 
@@ -135,8 +135,8 @@ public:
     (
         std::ostream&,
         const bool binary,
-        const GeometricField<Type, fvPatchField, volMesh>&,
-        const GeometricField<Type, pointPatchField, pointMesh>&,
+        const DimensionedField<Type, volMesh>&,
+        const DimensionedField<Type, pointMesh>&,
         const vtkMesh&
     );
 
@@ -150,6 +150,16 @@ public:
         const vtkMesh&
     );
 
+    //- Write generic dimensioned internal fields
+    template<class Type>
+    static void write
+    (
+        std::ostream&,
+        const bool binary,
+        const PtrList<DimensionedField<Type, volMesh> >&,
+        const vtkMesh&
+    );
+
     //- Interpolate and write volFields
     template<class Type>
     static void write
diff --git a/applications/utilities/postProcessing/dataConversion/foamToVTK/writeFunsTemplates.C b/applications/utilities/postProcessing/dataConversion/foamToVTK/writeFunsTemplates.C
index 5fe5d076dd03668b9be15251598d1ba84dae236e..3082da1e6199bc454e75c848049c937e1724d613 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToVTK/writeFunsTemplates.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToVTK/writeFunsTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -64,7 +64,7 @@ void Foam::writeFuns::write
 (
     std::ostream& os,
     const bool binary,
-    const GeometricField<Type, fvPatchField, volMesh>& vvf,
+    const DimensionedField<Type, volMesh>& vvf,
     const vtkMesh& vMesh
 )
 {
@@ -79,7 +79,7 @@ void Foam::writeFuns::write
 
     DynamicList<floatScalar> fField(pTraits<Type>::nComponents*nValues);
 
-    insert(vvf.internalField(), fField);
+    insert(vvf, fField);
 
     forAll(superCells, superCellI)
     {
@@ -128,8 +128,8 @@ void Foam::writeFuns::write
 (
     std::ostream& os,
     const bool binary,
-    const GeometricField<Type, fvPatchField, volMesh>& vvf,
-    const GeometricField<Type, pointPatchField, pointMesh>& pvf,
+    const DimensionedField<Type, volMesh>& vvf,
+    const DimensionedField<Type, pointMesh>& pvf,
     const vtkMesh& vMesh
 )
 {
@@ -164,6 +164,22 @@ void Foam::writeFuns::write
     const PtrList<GeometricField<Type, PatchField, GeoMesh> >& flds,
     const vtkMesh& vMesh
 )
+{
+    forAll(flds, i)
+    {
+        write(os, binary, flds[i].dimensionedInternalField(), vMesh);
+    }
+}
+
+
+template<class Type>
+void Foam::writeFuns::write
+(
+    std::ostream& os,
+    const bool binary,
+    const PtrList<DimensionedField<Type, volMesh> >& flds,
+    const vtkMesh& vMesh
+)
 {
     forAll(flds, i)
     {
diff --git a/applications/utilities/postProcessing/graphics/PV4Readers/PV4FoamReader/vtkPV4Foam/vtkPV4Foam.H b/applications/utilities/postProcessing/graphics/PV4Readers/PV4FoamReader/vtkPV4Foam/vtkPV4Foam.H
index 0bd35573e1d9a0b14caf09034c4d618742366f41..78e4496f176dfc6692e7aa0f1143dd25563a0c39 100644
--- a/applications/utilities/postProcessing/graphics/PV4Readers/PV4FoamReader/vtkPV4Foam/vtkPV4Foam.H
+++ b/applications/utilities/postProcessing/graphics/PV4Readers/PV4FoamReader/vtkPV4Foam/vtkPV4Foam.H
@@ -390,15 +390,6 @@ class vtkPV4Foam
             //- Reduce memory footprint after conversion
             void reduceMemory();
 
-            //- Volume fields
-            void updateVolFields(vtkMultiBlockDataSet*);
-
-            //- Point fields
-            void updatePointFields(vtkMultiBlockDataSet*);
-
-            //- Lagrangian fields
-            void updateLagrangianFields(vtkMultiBlockDataSet*);
-
 
         // Mesh conversion functions
 
@@ -492,6 +483,16 @@ class vtkPV4Foam
 
         // Convert OpenFOAM fields
 
+            //- Volume field - all types
+            template<class Type>
+            void convertVolField
+            (
+                const PtrList<PrimitivePatchInterpolation<primitivePatch> >&,
+                const GeometricField<Type, fvPatchField, volMesh>&,
+                const bool interpFields,
+                vtkMultiBlockDataSet* output
+            );
+
             //- Volume fields - all types
             template<class Type>
             void convertVolFields
@@ -503,6 +504,17 @@ class vtkPV4Foam
                 vtkMultiBlockDataSet* output
             );
 
+            //- Volume internal fields (DimensionedField)- all types
+            template<class Type>
+            void convertDimFields
+            (
+                const fvMesh&,
+                const PtrList<PrimitivePatchInterpolation<primitivePatch> >&,
+                const IOobjectList&,
+                const bool interpFields,
+                vtkMultiBlockDataSet* output
+            );
+
             //- Volume field - all selected parts
             template<class Type>
             void convertVolFieldBlock
diff --git a/applications/utilities/postProcessing/graphics/PV4Readers/PV4FoamReader/vtkPV4Foam/vtkPV4FoamFields.C b/applications/utilities/postProcessing/graphics/PV4Readers/PV4FoamReader/vtkPV4Foam/vtkPV4FoamFields.C
index 127f49d30614c8b62fa288b40c5a1cc78c3b2cbe..ec28f4dfe85d98de20951c62774d82177eca3e4d 100644
--- a/applications/utilities/postProcessing/graphics/PV4Readers/PV4FoamReader/vtkPV4Foam/vtkPV4FoamFields.C
+++ b/applications/utilities/postProcessing/graphics/PV4Readers/PV4FoamReader/vtkPV4Foam/vtkPV4FoamFields.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
@@ -143,6 +143,27 @@ void Foam::vtkPV4Foam::convertVolFields
         mesh, ppInterpList, objects, interpFields, output
     );
 
+    convertDimFields<scalar>
+    (
+        mesh, ppInterpList, objects, interpFields, output
+    );
+    convertDimFields<vector>
+    (
+        mesh, ppInterpList, objects, interpFields, output
+    );
+    convertDimFields<sphericalTensor>
+    (
+        mesh, ppInterpList, objects, interpFields, output
+    );
+    convertDimFields<symmTensor>
+    (
+        mesh, ppInterpList, objects, interpFields, output
+    );
+    convertDimFields<tensor>
+    (
+        mesh, ppInterpList, objects, interpFields, output
+    );
+
     if (debug)
     {
         Info<< "<end> Foam::vtkPV4Foam::convertVolFields" << endl;
diff --git a/applications/utilities/postProcessing/graphics/PV4Readers/PV4FoamReader/vtkPV4Foam/vtkPV4FoamUpdateInfoFields.H b/applications/utilities/postProcessing/graphics/PV4Readers/PV4FoamReader/vtkPV4Foam/vtkPV4FoamUpdateInfoFields.H
index b191e1c52bc5e969e87ea260f3ab3f1c69e649eb..784432ea4b1d1801d8500ffb57826d86902242c3 100644
--- a/applications/utilities/postProcessing/graphics/PV4Readers/PV4FoamReader/vtkPV4Foam/vtkPV4FoamUpdateInfoFields.H
+++ b/applications/utilities/postProcessing/graphics/PV4Readers/PV4FoamReader/vtkPV4Foam/vtkPV4FoamUpdateInfoFields.H
@@ -99,6 +99,34 @@ void Foam::vtkPV4Foam::updateInfoFields
         objects
     );
 
+    //- Add dimensioned fields to GUI
+    addToSelection<DimensionedField<scalar, meshType> >
+    (
+        select,
+        objects
+    );
+    addToSelection<DimensionedField<vector, meshType> >
+    (
+        select,
+        objects
+    );
+    addToSelection<DimensionedField<sphericalTensor, meshType> >
+    (
+        select,
+        objects
+    );
+    addToSelection<DimensionedField<symmTensor, meshType> >
+    (
+        select,
+        objects
+    );
+    addToSelection<DimensionedField<tensor, meshType> >
+    (
+        select,
+        objects
+    );
+
+
     // restore the enabled selections
     setSelectedArrayEntries(select, enabledEntries);
 
diff --git a/applications/utilities/postProcessing/graphics/PV4Readers/PV4FoamReader/vtkPV4Foam/vtkPV4FoamVolFields.H b/applications/utilities/postProcessing/graphics/PV4Readers/PV4FoamReader/vtkPV4Foam/vtkPV4FoamVolFields.H
index f4757a613732a9c38d14f46c9b18b21bfa28c6ab..fbc51aeaa1c159759f83dc9d28a697126d18705c 100644
--- a/applications/utilities/postProcessing/graphics/PV4Readers/PV4FoamReader/vtkPV4Foam/vtkPV4FoamVolFields.H
+++ b/applications/utilities/postProcessing/graphics/PV4Readers/PV4FoamReader/vtkPV4Foam/vtkPV4FoamVolFields.H
@@ -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
@@ -34,6 +34,7 @@ InClass
 #include "wallPolyPatch.H"
 #include "faceSet.H"
 #include "volPointInterpolation.H"
+#include "zeroGradientFvPatchField.H"
 
 #include "vtkPV4FoamFaceField.H"
 #include "vtkPV4FoamPatchField.H"
@@ -43,239 +44,315 @@ InClass
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 template<class Type>
-void Foam::vtkPV4Foam::convertVolFields
+void Foam::vtkPV4Foam::convertVolField
 (
-    const fvMesh& mesh,
     const PtrList<PrimitivePatchInterpolation<primitivePatch> >& ppInterpList,
-    const IOobjectList& objects,
+    const GeometricField<Type, fvPatchField, volMesh>& tf,
     const bool interpFields,
     vtkMultiBlockDataSet* output
 )
 {
+    const fvMesh& mesh = tf.mesh();
     const polyBoundaryMesh& patches = mesh.boundaryMesh();
 
-    forAllConstIter(IOobjectList, objects, iter)
+    // Interpolated field (demand driven)
+    autoPtr<GeometricField<Type, pointPatchField, pointMesh> > ptfPtr;
+    if (interpFields)
     {
-        // restrict to GeometricField<Type, ...>
-        if
-        (
-            iter()->headerClassName()
-         != GeometricField<Type, fvPatchField, volMesh>::typeName
-        )
+        if (debug)
         {
-            continue;
+            Info<< "convertVolFieldBlock interpolating:" << tf.name()
+                << endl;
         }
 
-        // Load field
-        GeometricField<Type, fvPatchField, volMesh> tf
+        ptfPtr.reset
         (
-            *iter(),
-            mesh
+            volPointInterpolation::New(mesh).interpolate(tf).ptr()
         );
-
-        // Interpolated field (demand driven)
-        autoPtr<GeometricField<Type, pointPatchField, pointMesh> > ptfPtr;
-        if (interpFields)
-        {
-            if (debug)
-            {
-                Info<< "convertVolFieldBlock interpolating:" << tf.name()
-                    << endl;
-            }
-
-            ptfPtr.reset
-            (
-                volPointInterpolation::New(tf.mesh()).interpolate(tf).ptr()
-            );
-        }
+    }
 
 
-        // Convert activated internalMesh regions
-        convertVolFieldBlock
-        (
-            tf,
-            ptfPtr,
-            output,
-            arrayRangeVolume_,
-            regionPolyDecomp_
-        );
-
-        // Convert activated cellZones
-        convertVolFieldBlock
-        (
-            tf,
-            ptfPtr,
-            output,
-            arrayRangeCellZones_,
-            zonePolyDecomp_
-        );
+    // Convert activated internalMesh regions
+    convertVolFieldBlock
+    (
+        tf,
+        ptfPtr,
+        output,
+        arrayRangeVolume_,
+        regionPolyDecomp_
+    );
+
+    // Convert activated cellZones
+    convertVolFieldBlock
+    (
+        tf,
+        ptfPtr,
+        output,
+        arrayRangeCellZones_,
+        zonePolyDecomp_
+    );
+
+    // Convert activated cellSets
+    convertVolFieldBlock
+    (
+        tf,
+        ptfPtr,
+        output,
+        arrayRangeCellSets_,
+        csetPolyDecomp_
+    );
+
+
+    //
+    // Convert patches - if activated
+    //
+    for
+    (
+        int partId = arrayRangePatches_.start();
+        partId < arrayRangePatches_.end();
+        ++partId
+    )
+    {
+        const word patchName = getPartName(partId);
+        const label datasetNo = partDataset_[partId];
+        const label patchId = patches.findPatchID(patchName);
 
-        // Convert activated cellSets
-        convertVolFieldBlock
-        (
-            tf,
-            ptfPtr,
-            output,
-            arrayRangeCellSets_,
-            csetPolyDecomp_
-        );
+        if (!partStatus_[partId] || datasetNo < 0 || patchId < 0)
+        {
+            continue;
+        }
 
+        const fvPatchField<Type>& ptf = tf.boundaryField()[patchId];
 
-        //
-        // Convert patches - if activated
-        //
-        for
+        if
         (
-            int partId = arrayRangePatches_.start();
-            partId < arrayRangePatches_.end();
-            ++partId
+            isType<emptyFvPatchField<Type> >(ptf)
+         ||
+            (
+                reader_->GetExtrapolatePatches()
+            && !polyPatch::constraintType(patches[patchId].type())
+            )
         )
         {
-            const word patchName = getPartName(partId);
-            const label datasetNo = partDataset_[partId];
-            const label patchId = patches.findPatchID(patchName);
+            fvPatch p(ptf.patch().patch(), mesh.boundary());
 
-            if (!partStatus_[partId] || datasetNo < 0 || patchId < 0)
-            {
-                continue;
-            }
-
-            const fvPatchField<Type>& ptf = tf.boundaryField()[patchId];
-
-            if
+            tmp<Field<Type> > tpptf
             (
-                isType<emptyFvPatchField<Type> >(ptf)
-             ||
-                (
-                    reader_->GetExtrapolatePatches()
-                && !polyPatch::constraintType(patches[patchId].type())
-                )
-            )
-            {
-                fvPatch p(ptf.patch().patch(), tf.mesh().boundary());
+                fvPatchField<Type>(p, tf).patchInternalField()
+            );
 
-                tmp<Field<Type> > tpptf
-                (
-                    fvPatchField<Type>(p, tf).patchInternalField()
-                );
+            convertPatchField
+            (
+                tf.name(),
+                tpptf(),
+                output,
+                arrayRangePatches_,
+                datasetNo
+            );
 
-                convertPatchField
+            if (interpFields)
+            {
+                convertPatchPointField
                 (
                     tf.name(),
-                    tpptf(),
+                    ppInterpList[patchId].faceToPointInterpolate(tpptf)(),
                     output,
                     arrayRangePatches_,
                     datasetNo
                 );
-
-                if (interpFields)
-                {
-                    convertPatchPointField
-                    (
-                        tf.name(),
-                        ppInterpList[patchId].faceToPointInterpolate(tpptf)(),
-                        output,
-                        arrayRangePatches_,
-                        datasetNo
-                    );
-                }
             }
-            else
+        }
+        else
+        {
+            convertPatchField
+            (
+                tf.name(),
+                ptf,
+                output,
+                arrayRangePatches_,
+                datasetNo
+            );
+
+            if (interpFields)
             {
-                convertPatchField
+                convertPatchPointField
                 (
                     tf.name(),
-                    ptf,
+                    ppInterpList[patchId].faceToPointInterpolate(ptf)(),
                     output,
                     arrayRangePatches_,
                     datasetNo
                 );
-
-                if (interpFields)
-                {
-                    convertPatchPointField
-                    (
-                        tf.name(),
-                        ppInterpList[patchId].faceToPointInterpolate(ptf)(),
-                        output,
-                        arrayRangePatches_,
-                        datasetNo
-                    );
-                }
             }
         }
+    }
+
+    //
+    // Convert face zones - if activated
+    //
+    for
+    (
+        int partId = arrayRangeFaceZones_.start();
+        partId < arrayRangeFaceZones_.end();
+        ++partId
+    )
+    {
+        const word zoneName = getPartName(partId);
+        const label datasetNo = partDataset_[partId];
+
+        if (!partStatus_[partId] || datasetNo < 0)
+        {
+            continue;
+        }
+
+        const faceZoneMesh& zMesh = mesh.faceZones();
+        const label zoneId = zMesh.findZoneID(zoneName);
 
-        //
-        // Convert face zones - if activated
-        //
-        for
+        if (zoneId < 0)
+        {
+            continue;
+        }
+
+        convertFaceField
         (
-            int partId = arrayRangeFaceZones_.start();
-            partId < arrayRangeFaceZones_.end();
-            ++partId
-        )
+            tf,
+            output,
+            arrayRangeFaceZones_,
+            datasetNo,
+            mesh,
+            zMesh[zoneId]
+        );
+
+        // TODO: points
+    }
+
+    //
+    // Convert face sets - if activated
+    //
+    for
+    (
+        int partId = arrayRangeFaceSets_.start();
+        partId < arrayRangeFaceSets_.end();
+        ++partId
+    )
+    {
+        const word selectName = getPartName(partId);
+        const label datasetNo = partDataset_[partId];
+
+        if (!partStatus_[partId] || datasetNo < 0)
         {
-            const word zoneName = getPartName(partId);
-            const label datasetNo = partDataset_[partId];
+            continue;
+        }
 
-            if (!partStatus_[partId] || datasetNo < 0)
-            {
-                continue;
-            }
+        const faceSet fSet(mesh, selectName);
 
-            const faceZoneMesh& zMesh = mesh.faceZones();
-            const label zoneId = zMesh.findZoneID(zoneName);
+        convertFaceField
+        (
+            tf,
+            output,
+            arrayRangeFaceSets_,
+            datasetNo,
+            mesh,
+            fSet.toc()
+        );
 
-            if (zoneId < 0)
-            {
-                continue;
-            }
+        // TODO: points
+    }
+}
 
-            convertFaceField
-            (
-                tf,
-                output,
-                arrayRangeFaceZones_,
-                datasetNo,
-                mesh,
-                zMesh[zoneId]
-            );
 
-            // TODO: points
+template<class Type>
+void Foam::vtkPV4Foam::convertVolFields
+(
+    const fvMesh& mesh,
+    const PtrList<PrimitivePatchInterpolation<primitivePatch> >& ppInterpList,
+    const IOobjectList& objects,
+    const bool interpFields,
+    vtkMultiBlockDataSet* output
+)
+{
+    forAllConstIter(IOobjectList, objects, iter)
+    {
+        // restrict to GeometricField<Type, ...>
+        if
+        (
+            iter()->headerClassName()
+         != GeometricField<Type, fvPatchField, volMesh>::typeName
+        )
+        {
+            continue;
         }
 
-        //
-        // Convert face sets - if activated
-        //
-        for
+        // Load field
+        GeometricField<Type, fvPatchField, volMesh> tf
+        (
+            *iter(),
+            mesh
+        );
+
+        // Convert
+        convertVolField(ppInterpList, tf, interpFields, output);
+    }
+}
+
+
+template<class Type>
+void Foam::vtkPV4Foam::convertDimFields
+(
+    const fvMesh& mesh,
+    const PtrList<PrimitivePatchInterpolation<primitivePatch> >& ppInterpList,
+    const IOobjectList& objects,
+    const bool interpFields,
+    vtkMultiBlockDataSet* output
+)
+{
+    forAllConstIter(IOobjectList, objects, iter)
+    {
+        // restrict to DimensionedField<Type, ...>
+        if
         (
-            int partId = arrayRangeFaceSets_.start();
-            partId < arrayRangeFaceSets_.end();
-            ++partId
+            iter()->headerClassName()
+         != DimensionedField<Type, volMesh>::typeName
         )
         {
-            const word selectName = getPartName(partId);
-            const label datasetNo = partDataset_[partId];
+            continue;
+        }
 
-            if (!partStatus_[partId] || datasetNo < 0)
-            {
-                continue;
-            }
+        // Load field
+        DimensionedField<Type, volMesh> dimFld(*iter(), mesh);
+
+
+        // Construct volField with zero-gradient patch fields
 
-            const faceSet fSet(mesh, selectName);
+        IOobject io(dimFld);
+        io.readOpt() = IOobject::NO_READ;
 
-            convertFaceField
+        PtrList<fvPatchField<Type> > patchFields(mesh.boundary().size());
+        forAll(patchFields, patchI)
+        {
+            patchFields.set
             (
-                tf,
-                output,
-                arrayRangeFaceSets_,
-                datasetNo,
-                mesh,
-                fSet.toc()
+                patchI,
+                fvPatchField<Type>::New
+                (
+                    zeroGradientFvPatchField<scalar>::typeName,
+                    mesh.boundary()[patchI],
+                    dimFld
+                )
             );
-
-            // TODO: points
         }
+
+        GeometricField<Type, fvPatchField, volMesh> volFld
+        (
+            io,
+            dimFld.mesh(),
+            dimFld.dimensions(),
+            dimFld,
+            patchFields
+        );
+        volFld.correctBoundaryConditions();
+
+        convertVolField(ppInterpList, volFld, interpFields, output);
     }
 }
 
diff --git a/applications/utilities/postProcessing/lagrangian/particleTracks/particleTracks.C b/applications/utilities/postProcessing/lagrangian/particleTracks/particleTracks.C
index 4988fc969f871553df55c3e3f5c36ab1ba092845..83f9bc2ebb92a5c33e650e7dd43f189ee41856a5 100644
--- a/applications/utilities/postProcessing/lagrangian/particleTracks/particleTracks.C
+++ b/applications/utilities/postProcessing/lagrangian/particleTracks/particleTracks.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
@@ -247,6 +247,8 @@ int main(int argc, char *argv[])
         );
     }
 
+    Info<< "End\n" << endl;
+
     return 0;
 }
 
diff --git a/applications/utilities/postProcessing/lagrangian/steadyParticleTracks/steadyParticleTracks.C b/applications/utilities/postProcessing/lagrangian/steadyParticleTracks/steadyParticleTracks.C
index 4d2ab943acab92eacfedb38d57d1bb1c0e472c28..2941df5d5a0c2166bbf55c01dbbb0e5893e67d33 100644
--- a/applications/utilities/postProcessing/lagrangian/steadyParticleTracks/steadyParticleTracks.C
+++ b/applications/utilities/postProcessing/lagrangian/steadyParticleTracks/steadyParticleTracks.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
@@ -331,7 +331,7 @@ int main(int argc, char *argv[])
         Info<< endl;
     }
 
-    Info<< "\ndone" << endl;
+    Info<< "End" << nl << endl;
 
     return 0;
 }
diff --git a/applications/utilities/postProcessing/miscellaneous/execFlowFunctionObjects/execFlowFunctionObjects.C b/applications/utilities/postProcessing/miscellaneous/execFlowFunctionObjects/execFlowFunctionObjects.C
index 8e0c2ce7cf4e356a8f07fbcb608edf64ed59090f..40b6b1f4fbd6d7d74ee4468aa5b1384728d37cc1 100644
--- a/applications/utilities/postProcessing/miscellaneous/execFlowFunctionObjects/execFlowFunctionObjects.C
+++ b/applications/utilities/postProcessing/miscellaneous/execFlowFunctionObjects/execFlowFunctionObjects.C
@@ -156,7 +156,11 @@ void calc
     functionObjectList& fol
 )
 {
-    if (args.optionFound("noFlow"))
+    if (args.optionFound("noRead"))
+    {
+        fol.execute(true);
+    }
+    else if (args.optionFound("noFlow"))
     {
         Info<< "    Operating in no-flow mode; no models will be loaded."
             << " All vol, surface and point fields will be loaded." << endl;
diff --git a/applications/utilities/postProcessing/miscellaneous/ptot/ptot.C b/applications/utilities/postProcessing/miscellaneous/ptot/ptot.C
index 41ca2101798370bdb5957412309acb2a9725b529..3f3213cd3e46bf13c6daf2961788651a0a1a2549 100644
--- a/applications/utilities/postProcessing/miscellaneous/ptot/ptot.C
+++ b/applications/utilities/postProcessing/miscellaneous/ptot/ptot.C
@@ -138,6 +138,8 @@ int main(int argc, char *argv[])
         Info<< endl;
     }
 
+    Info<< "End" << nl << endl;
+
     return 0;
 }
 
diff --git a/applications/utilities/postProcessing/miscellaneous/wdot/wdot.C b/applications/utilities/postProcessing/miscellaneous/wdot/wdot.C
index e670d9150f9a9b681c784192af0a19c86dc9e306..873bb53a72ce1cdb2fe5710de453e94da21e0d12 100644
--- a/applications/utilities/postProcessing/miscellaneous/wdot/wdot.C
+++ b/applications/utilities/postProcessing/miscellaneous/wdot/wdot.C
@@ -49,6 +49,8 @@ int main(int argc, char *argv[])
     {
         runTime.setTime(timeDirs[timeI], timeI);
 
+        Info<< "Time = " << runTime.timeName() << endl;
+
         mesh.readUpdate();
 
         volScalarField mgb
@@ -114,8 +116,12 @@ int main(int argc, char *argv[])
         );
 
         wdot.write();
+
+        Info<< endl;
     }
 
+    Info<< "End" << nl << endl;
+
     return 0;
 }
 
diff --git a/applications/utilities/postProcessing/scalarField/pPrime2/pPrime2.C b/applications/utilities/postProcessing/scalarField/pPrime2/pPrime2.C
index 7848679a25bac75289980a2776971957e883129d..f03ed13570035c3016eb024c7400406c71c6e66e 100644
--- a/applications/utilities/postProcessing/scalarField/pPrime2/pPrime2.C
+++ b/applications/utilities/postProcessing/scalarField/pPrime2/pPrime2.C
@@ -105,6 +105,8 @@ int main(int argc, char *argv[])
         Info<< endl;
     }
 
+    Info<< nl << "End" << nl << endl;
+
     return 0;
 }
 
diff --git a/applications/utilities/postProcessing/velocityField/Mach/Mach.C b/applications/utilities/postProcessing/velocityField/Mach/Mach.C
index 39136a389b2547360a721adffad3f6b5e4a6da4d..a65eb0a07ccb22e0b92c206ecf0d40128a9b6845 100644
--- a/applications/utilities/postProcessing/velocityField/Mach/Mach.C
+++ b/applications/utilities/postProcessing/velocityField/Mach/Mach.C
@@ -144,7 +144,7 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
         Info<< "    Missing U or T" << endl;
     }
 
-    Info<< "\nEnd\n" << endl;
+    Info<< nl << "End" << nl << endl;
 }
 
 
diff --git a/applications/utilities/postProcessing/velocityField/Pe/Pe.C b/applications/utilities/postProcessing/velocityField/Pe/Pe.C
index a82837d83cdbb1eee6c818ec5335d5b9dda8488e..c52565af503629962b5f6932cb82e8bada53f13d 100644
--- a/applications/utilities/postProcessing/velocityField/Pe/Pe.C
+++ b/applications/utilities/postProcessing/velocityField/Pe/Pe.C
@@ -274,6 +274,8 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
     {
         Info<< "    No phi" << endl;
     }
+
+    Info<< "End" << nl << endl;
 }
 
 
diff --git a/applications/utilities/preProcessing/applyBoundaryLayer/applyBoundaryLayer.C b/applications/utilities/preProcessing/applyBoundaryLayer/applyBoundaryLayer.C
index e00f12b48ebfccf6f14fbf25ef276358deaee5ae..d55085ee33012f67abcf30d1f12ca9b75603c152 100644
--- a/applications/utilities/preProcessing/applyBoundaryLayer/applyBoundaryLayer.C
+++ b/applications/utilities/preProcessing/applyBoundaryLayer/applyBoundaryLayer.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -33,6 +33,10 @@ Description
     the thickness coefficient supplied via the option -Cbl.  If both options
     are provided -ybl is used.
 
+    Compressible modes is automatically selected based on the existence of the
+    "thermophysicalProperties" dictionary required to construct the
+    thermodynamics package.
+
 \*---------------------------------------------------------------------------*/
 
 #include "fvCFD.H"
@@ -331,11 +335,6 @@ int main(int argc, char *argv[])
         "scalar",
         "boundary-layer thickness as Cbl * mean distance to wall"
     );
-    argList::addBoolOption
-    (
-        "compressible",
-        "apply to compressible case"
-    );
 
     #include "setRootCase.H"
 
@@ -360,8 +359,6 @@ int main(int argc, char *argv[])
     #include "createNamedMesh.H"
     #include "createFields.H"
 
-    const bool compressible = args.optionFound("compressible");
-
     // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
     // Modify velocity by applying a 1/7th power law boundary-layer
@@ -384,7 +381,15 @@ int main(int argc, char *argv[])
     U.write();
 
 
-    if (compressible)
+    if
+    (
+        IOobject
+        (
+            basicThermo::dictName,
+            runTime.constant(),
+            mesh
+        ).headerOk()
+    )
     {
         calcCompressible(mesh, mask, U, y, ybl);
     }
diff --git a/applications/utilities/preProcessing/boxTurb/boxTurb.C b/applications/utilities/preProcessing/boxTurb/boxTurb.C
index 55a35322abad886d8ba68dea721168ca2027fe8e..4ed0356e1cc1976078d4d7c8c7a2931c1ff49322 100644
--- a/applications/utilities/preProcessing/boxTurb/boxTurb.C
+++ b/applications/utilities/preProcessing/boxTurb/boxTurb.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,7 +74,7 @@ int main(int argc, char *argv[])
         runTime.graphFormat()
     );
 
-    Info<< "end" << endl;
+    Info<< "End" << nl << endl;
 
     return 0;
 }
diff --git a/applications/utilities/preProcessing/changeDictionary/changeDictionary.C b/applications/utilities/preProcessing/changeDictionary/changeDictionary.C
index a6b18b6114f6b30be960ef421d95a1d2a1f78ae7..906127a268b64fbd7ef96d1aceb15217fee018c5 100644
--- a/applications/utilities/preProcessing/changeDictionary/changeDictionary.C
+++ b/applications/utilities/preProcessing/changeDictionary/changeDictionary.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-2015 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -612,41 +612,51 @@ int main(int argc, char *argv[])
         }
         else
         {
-            // Read dictionary. (disable class type checking so we can load
-            // field)
+            // Read dictionary
+            // Note: disable class type checking so we can load field
             Info<< "Loading dictionary " << fieldName << endl;
             const word oldTypeName = IOdictionary::typeName;
             const_cast<word&>(IOdictionary::typeName) = word::null;
 
-            IOdictionary fieldDict
+            IOobject fieldHeader
             (
-                IOobject
-                (
-                    fieldName,
-                    instance,
-                    mesh,
-                    IOobject::MUST_READ_IF_MODIFIED,
-                    IOobject::NO_WRITE,
-                    false
-                )
+                fieldName,
+                instance,
+                mesh,
+                IOobject::MUST_READ_IF_MODIFIED,
+                IOobject::NO_WRITE,
+                false
             );
 
-            const_cast<word&>(IOdictionary::typeName) = oldTypeName;
-            // Fake type back to what was in field
-            const_cast<word&>(fieldDict.type()) = fieldDict.headerClassName();
+            if (fieldHeader.headerOk())
+            {
+                IOdictionary fieldDict(fieldHeader);
 
-            Info<< "Loaded dictionary " << fieldName
-                << " with entries " << fieldDict.toc() << endl;
+                const_cast<word&>(IOdictionary::typeName) = oldTypeName;
 
-            // Get the replacement dictionary for the field
-            const dictionary& replaceDict = fieldIter().dict();
-            Info<< "Merging entries from " << replaceDict.toc() << endl;
+                // Fake type back to what was in field
+                const_cast<word&>(fieldDict.type()) =
+                    fieldDict.headerClassName();
 
-            // Merge the replacements in
-            merge(fieldDict, replaceDict, literalRE, patchGroups);
+                Info<< "Loaded dictionary " << fieldName
+                    << " with entries " << fieldDict.toc() << endl;
+
+                // Get the replacement dictionary for the field
+                const dictionary& replaceDict = fieldIter().dict();
+                Info<< "Merging entries from " << replaceDict.toc() << endl;
 
-            Info<< "Writing modified fieldDict " << fieldName << endl;
-            fieldDict.regIOobject::write();
+                // Merge the replacements in
+                merge(fieldDict, replaceDict, literalRE, patchGroups);
+
+                Info<< "Writing modified fieldDict " << fieldName << endl;
+                fieldDict.regIOobject::write();
+            }
+            else
+            {
+                WarningIn(args.executable())
+                    << "Requested field to change " << fieldName
+                    << " does not exist in " << fieldHeader.path() << endl;
+            }
         }
     }
 
diff --git a/applications/utilities/preProcessing/engineSwirl/engineSwirl.C b/applications/utilities/preProcessing/engineSwirl/engineSwirl.C
index 43e86814c39bb039d56185b8db3cf16d0ee01ac5..4652cb2afd9c5f6a54b43dc10e32c757d688b592 100644
--- a/applications/utilities/preProcessing/engineSwirl/engineSwirl.C
+++ b/applications/utilities/preProcessing/engineSwirl/engineSwirl.C
@@ -72,7 +72,7 @@ int main(int argc, char *argv[])
 
     U.write();
 
-    Info<< "\n end\n";
+    Info<< nl << "End" << nl << endl;
 
     return 0;
 }
diff --git a/applications/utilities/surface/surfaceBooleanFeatures/CGAL3DKernel.H b/applications/utilities/surface/surfaceBooleanFeatures/CGAL3DKernel.H
index e753060ce0f161ee68bdc4e2c5fd29eb53ada8ea..7fda691d056ad88b3ec156aadf77217e4e461126 100644
--- a/applications/utilities/surface/surfaceBooleanFeatures/CGAL3DKernel.H
+++ b/applications/utilities/surface/surfaceBooleanFeatures/CGAL3DKernel.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2015 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
+     \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
diff --git a/applications/utilities/surface/surfaceBooleanFeatures/CGALIndexedPolyhedron.H b/applications/utilities/surface/surfaceBooleanFeatures/CGALIndexedPolyhedron.H
index 0eba1bee2f3511207ae228de722e73f686e9c78b..e17039cd03407bad863e3ff2ad513ebbf46d20da 100644
--- a/applications/utilities/surface/surfaceBooleanFeatures/CGALIndexedPolyhedron.H
+++ b/applications/utilities/surface/surfaceBooleanFeatures/CGALIndexedPolyhedron.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2015 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
+     \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
diff --git a/applications/utilities/surface/surfaceBooleanFeatures/PolyhedronReader/PolyhedronReader.C b/applications/utilities/surface/surfaceBooleanFeatures/PolyhedronReader/PolyhedronReader.C
index 462b9a6f05ab278d1cc76188cf930b6bb6a94bda..693237a7eafcca9dfa5bdff001c7916f41f1cf0c 100644
--- a/applications/utilities/surface/surfaceBooleanFeatures/PolyhedronReader/PolyhedronReader.C
+++ b/applications/utilities/surface/surfaceBooleanFeatures/PolyhedronReader/PolyhedronReader.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2015 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
+     \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
diff --git a/applications/utilities/surface/surfaceBooleanFeatures/PolyhedronReader/PolyhedronReader.H b/applications/utilities/surface/surfaceBooleanFeatures/PolyhedronReader/PolyhedronReader.H
index ef3e88a0ac3ecce27e3e27306807c80754d411df..bf1abc1e2aa4932797d2a58c4a3e68a500cd8b64 100644
--- a/applications/utilities/surface/surfaceBooleanFeatures/PolyhedronReader/PolyhedronReader.H
+++ b/applications/utilities/surface/surfaceBooleanFeatures/PolyhedronReader/PolyhedronReader.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2015 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
+     \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
diff --git a/applications/utilities/surface/surfaceBooleanFeatures/PolyhedronReader/PolyhedronReaderTemplates.C b/applications/utilities/surface/surfaceBooleanFeatures/PolyhedronReader/PolyhedronReaderTemplates.C
index 53ea3b1b87b5349f578cb7f622121ad1404e0ac6..76a192c10863b859a8b56918b008a5ef105e27bd 100644
--- a/applications/utilities/surface/surfaceBooleanFeatures/PolyhedronReader/PolyhedronReaderTemplates.C
+++ b/applications/utilities/surface/surfaceBooleanFeatures/PolyhedronReader/PolyhedronReaderTemplates.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2015 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
+     \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
diff --git a/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C b/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C
index e948cd1fdbc59b7a7dfc48eac2fe7d86bc1d94e4..34a692563727d1a458c3085d81db327baba3c449 100644
--- a/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C
+++ b/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
+     \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
diff --git a/applications/utilities/surface/surfaceCheck/surfaceCheck.C b/applications/utilities/surface/surfaceCheck/surfaceCheck.C
index c292ebe6b5ca8e577d96bdb32d8363cf7e0184d2..f94c5cb82fa513699f106bb1d73be2481af62da1 100644
--- a/applications/utilities/surface/surfaceCheck/surfaceCheck.C
+++ b/applications/utilities/surface/surfaceCheck/surfaceCheck.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
+     \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
diff --git a/applications/utilities/surface/surfaceFeatureConvert/surfaceFeatureConvert.C b/applications/utilities/surface/surfaceFeatureConvert/surfaceFeatureConvert.C
index e62bee9a68f5e86486d75d39aa016ee8fb6a7a81..a35579ac4b00f28bcb480d3942ef7eee74154f10 100644
--- a/applications/utilities/surface/surfaceFeatureConvert/surfaceFeatureConvert.C
+++ b/applications/utilities/surface/surfaceFeatureConvert/surfaceFeatureConvert.C
@@ -2,8 +2,8 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
+     \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
diff --git a/applications/utilities/surface/surfaceInertia/surfaceInertia.C b/applications/utilities/surface/surfaceInertia/surfaceInertia.C
index 14ff3cc5c8b46999f065bc5c79d23c8f1de485b9..d4c7a757c967216c15b217d8888bf32df207d31d 100644
--- a/applications/utilities/surface/surfaceInertia/surfaceInertia.C
+++ b/applications/utilities/surface/surfaceInertia/surfaceInertia.C
@@ -2,8 +2,8 @@
  =========                   |
  \\      /   F ield          | OpenFOAM: The Open Source CFD Toolbox
   \\    /    O peration      |
-   \\  /     A nd            | Copyright (C) 2011-2013 OpenFOAM Foundation
-    \\/      M anipulation   | Copyright (C) 2015 OpenCFD Ltd.
+   \\  /     A nd            | Copyright (C) 2011-2014 OpenFOAM Foundation
+    \\/      M anipulation   |
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
diff --git a/applications/utilities/surface/surfaceInflate/surfaceInflate.C b/applications/utilities/surface/surfaceInflate/surfaceInflate.C
index dfc415432178c878c1e389e1b421fec1e82f2783..a1b4329935af264c3d00571109c635da6cbcd92a 100644
--- a/applications/utilities/surface/surfaceInflate/surfaceInflate.C
+++ b/applications/utilities/surface/surfaceInflate/surfaceInflate.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2015 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
+     \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
diff --git a/applications/utilities/surface/surfaceLambdaMuSmooth/surfaceLambdaMuSmooth.C b/applications/utilities/surface/surfaceLambdaMuSmooth/surfaceLambdaMuSmooth.C
index 93f29a2283c94fbf9e7bd3f529d538449ae4a900..26972f2a38ac3c8fa98057e8b82b676c4f0462df 100644
--- a/applications/utilities/surface/surfaceLambdaMuSmooth/surfaceLambdaMuSmooth.C
+++ b/applications/utilities/surface/surfaceLambdaMuSmooth/surfaceLambdaMuSmooth.C
@@ -2,8 +2,8 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
+     \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
diff --git a/applications/utilities/surface/surfacePatch/searchableSurfaceModifier/autoPatch.C b/applications/utilities/surface/surfacePatch/searchableSurfaceModifier/autoPatch.C
index e8ca9a0125c5906bb12e58053eedab8fd8f2cc2e..5ff45cecc0b1b92b0b300b1e96cf536259ac9e6a 100644
--- a/applications/utilities/surface/surfacePatch/searchableSurfaceModifier/autoPatch.C
+++ b/applications/utilities/surface/surfacePatch/searchableSurfaceModifier/autoPatch.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2014 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
+     \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
diff --git a/applications/utilities/surface/surfacePatch/searchableSurfaceModifier/autoPatch.H b/applications/utilities/surface/surfacePatch/searchableSurfaceModifier/autoPatch.H
index 4a7e0459b3447cca87c50c3ecc45b3291fd9a694..bf46c9f939e0d2506188043a4b732b638d4870bb 100644
--- a/applications/utilities/surface/surfacePatch/searchableSurfaceModifier/autoPatch.H
+++ b/applications/utilities/surface/surfacePatch/searchableSurfaceModifier/autoPatch.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2014 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
+     \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
diff --git a/applications/utilities/surface/surfacePatch/searchableSurfaceModifier/cut.C b/applications/utilities/surface/surfacePatch/searchableSurfaceModifier/cut.C
index c04c47da0b5c173e6da11ffb4c2b8f9f5691d012..9dab08b528d69210dd0e53e9e8935efa2a2d8e85 100644
--- a/applications/utilities/surface/surfacePatch/searchableSurfaceModifier/cut.C
+++ b/applications/utilities/surface/surfacePatch/searchableSurfaceModifier/cut.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2014 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
+     \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
diff --git a/applications/utilities/surface/surfacePatch/searchableSurfaceModifier/cut.H b/applications/utilities/surface/surfacePatch/searchableSurfaceModifier/cut.H
index 4081b753b3598837295c1eca243c1807e46d892d..6cca7cd6fe76d28041ba7073e27e65afc2543cba 100644
--- a/applications/utilities/surface/surfacePatch/searchableSurfaceModifier/cut.H
+++ b/applications/utilities/surface/surfacePatch/searchableSurfaceModifier/cut.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2014 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
+     \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
diff --git a/applications/utilities/surface/surfacePatch/searchableSurfaceModifier/searchableSurfaceModifier.C b/applications/utilities/surface/surfacePatch/searchableSurfaceModifier/searchableSurfaceModifier.C
index e28036012c237a233db761d9ac440074a1eb5ecf..b4fe619b120dd8ff449e22094e430038c7d314a7 100644
--- a/applications/utilities/surface/surfacePatch/searchableSurfaceModifier/searchableSurfaceModifier.C
+++ b/applications/utilities/surface/surfacePatch/searchableSurfaceModifier/searchableSurfaceModifier.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2014 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
+     \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
diff --git a/applications/utilities/surface/surfacePatch/searchableSurfaceModifier/searchableSurfaceModifier.H b/applications/utilities/surface/surfacePatch/searchableSurfaceModifier/searchableSurfaceModifier.H
index 8955dea7416cdf715b8b80c46f8172d3b52978dd..0f196efdcf9d1ed38e059136aa40693491c09feb 100644
--- a/applications/utilities/surface/surfacePatch/searchableSurfaceModifier/searchableSurfaceModifier.H
+++ b/applications/utilities/surface/surfacePatch/searchableSurfaceModifier/searchableSurfaceModifier.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2014 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
+     \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
diff --git a/applications/utilities/surface/surfaceSubset/surfaceSubset.C b/applications/utilities/surface/surfaceSubset/surfaceSubset.C
index c2a168ba68d4ab723c863a464a57acd287483590..f29b38faca967a8935e3f6ffef29ef11242bc0c5 100644
--- a/applications/utilities/surface/surfaceSubset/surfaceSubset.C
+++ b/applications/utilities/surface/surfaceSubset/surfaceSubset.C
@@ -2,8 +2,8 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
+     \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
diff --git a/applications/utilities/thermophysical/equilibriumCO/equilibriumCO.C b/applications/utilities/thermophysical/equilibriumCO/equilibriumCO.C
index 7af84242b9c3f5490c9187baa8d7eb5ec956dd28..7f7994bdf1ee9254092488033f3bfdc08afcdfd5 100644
--- a/applications/utilities/thermophysical/equilibriumCO/equilibriumCO.C
+++ b/applications/utilities/thermophysical/equilibriumCO/equilibriumCO.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
@@ -127,7 +127,7 @@ int main(int argc, char *argv[])
         Info<< "Kc(EQreactions) = " << iter().Kc(P, T) << endl;
     }
 
-    Info<< nl << "end" << endl;
+    Info<< nl << "End" << nl << endl;
 
     return 0;
 }
diff --git a/applications/utilities/thermophysical/equilibriumFlameT/equilibriumFlameT.C b/applications/utilities/thermophysical/equilibriumFlameT/equilibriumFlameT.C
index 9879031cf8e023a9d228c0bc10efe76fa32c125f..567bc234dc57be29d45b04d5586ba6582f982aba 100644
--- a/applications/utilities/thermophysical/equilibriumFlameT/equilibriumFlameT.C
+++ b/applications/utilities/thermophysical/equilibriumFlameT/equilibriumFlameT.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
@@ -273,7 +273,7 @@ int main(int argc, char *argv[])
     }
     }
 
-    Info<< nl << "end" << endl;
+    Info<< nl << "End" << nl << endl;
 
     return 0;
 }