diff --git a/applications/solvers/combustion/engineFoam/pEqn.H b/applications/solvers/combustion/engineFoam/pEqn.H
index 2f6333cc9761b89834245073ac3edfad744a318f..bd12a82495b7b8bb8ee00733d5cc374c6b44a0d6 100644
--- a/applications/solvers/combustion/engineFoam/pEqn.H
+++ b/applications/solvers/combustion/engineFoam/pEqn.H
@@ -91,10 +91,7 @@ K = 0.5*magSqr(U);
 {
     rhoUf = fvc::interpolate(rho*U);
     surfaceVectorField n(mesh.Sf()/mesh.magSf());
-    rhoUf +=
-        mesh.Sf()
-       *(fvc::absolute(phi, rho, U) - (mesh.Sf() & rhoUf))
-       /sqr(mesh.magSf());
+    rhoUf += n*(fvc::absolute(phi, rho, U)/mesh.magSf() - (n & rhoUf));
 }
 
 if (thermo.dpdt())
diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/pEqn.H b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/pEqn.H
index fd892bb9327e766841defe9190cfedaa49d382b1..1c58a02c33950e10054b8a9748c25278d939f114 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/pEqn.H
+++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/pEqn.H
@@ -107,10 +107,7 @@ K = 0.5*magSqr(U);
 {
     rhoUf = fvc::interpolate(rho*U);
     surfaceVectorField n(mesh.Sf()/mesh.magSf());
-    rhoUf +=
-        mesh.Sf()
-       *(fvc::absolute(phi, rho, U) - (mesh.Sf() & rhoUf))
-       /sqr(mesh.magSf());
+    rhoUf += n*(fvc::absolute(phi, rho, U)/mesh.magSf() - (n & rhoUf));
 }
 
 if (thermo.dpdt())
diff --git a/applications/solvers/compressible/sonicFoam/sonicDyMFoam/pEqn.H b/applications/solvers/compressible/sonicFoam/sonicDyMFoam/pEqn.H
index 65afd1aeb88642cae2b880ac21ba6951bab763f0..4799f6456728144ee8a1327dc2fbb064b2cd8df0 100644
--- a/applications/solvers/compressible/sonicFoam/sonicDyMFoam/pEqn.H
+++ b/applications/solvers/compressible/sonicFoam/sonicDyMFoam/pEqn.H
@@ -42,8 +42,5 @@ U.correctBoundaryConditions();
 {
     rhoUf = fvc::interpolate(rho*U);
     surfaceVectorField n(mesh.Sf()/mesh.magSf());
-    rhoUf +=
-        mesh.Sf()
-       *(fvc::absolute(phi, rho, U) - (mesh.Sf() & rhoUf))
-       /sqr(mesh.magSf());
+    rhoUf += n*(fvc::absolute(phi, rho, U)/mesh.magSf() - (n & rhoUf));
 }
diff --git a/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pEqn.H b/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pEqn.H
index 7ecfe1f66236e7458835eb35dde5a76a7038b573..e2938bdb949776932b8e15d11e405fc52cb26553 100644
--- a/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pEqn.H
+++ b/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pEqn.H
@@ -51,7 +51,7 @@ fvOptions.correct(U);
 {
     Uf = fvc::interpolate(U);
     surfaceVectorField n(mesh.Sf()/mesh.magSf());
-    Uf += mesh.Sf()*(phi - (mesh.Sf() & Uf))/sqr(mesh.magSf());
+    Uf += n*(phi/mesh.magSf() - (n & Uf));
 }
 
 // Make the fluxes relative to the mesh motion
diff --git a/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/pEqn.H b/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/pEqn.H
index b10c24aa0b7c86eb281cea29e612929b31e1ad50..d23ec0f95058a2ea46ee547ba9833b2e4851e9e9 100644
--- a/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/pEqn.H
+++ b/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/pEqn.H
@@ -93,10 +93,7 @@ K = 0.5*magSqr(U);
 {
     rhoUf = fvc::interpolate(rho*U);
     surfaceVectorField n(mesh.Sf()/mesh.magSf());
-    rhoUf +=
-        mesh.Sf()
-       *(fvc::absolute(phi, rho, U) - (mesh.Sf() & rhoUf))
-       /sqr(mesh.magSf());
+    rhoUf += n*(fvc::absolute(phi, rho, U)/mesh.magSf() - (n & rhoUf));
 }
 
 if (thermo.dpdt())
diff --git a/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/pEqn.H b/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/pEqn.H
index 0f0d5768414323fb1df135a80b7bd1b5e27d2832..a0e0e6c74dc740175847af7d89fd41388a3dbb38 100644
--- a/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/pEqn.H
+++ b/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/pEqn.H
@@ -85,6 +85,6 @@
     {
         Uf = fvc::interpolate(U);
         surfaceVectorField n(mesh.Sf()/mesh.magSf());
-        Uf += mesh.Sf()*(phiv - (mesh.Sf() & Uf))/sqr(mesh.magSf());
+        Uf += n*(phiv/mesh.magSf() - (n & Uf));
     }
 }
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/pEqn.H b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/pEqn.H
index c86921371f52ec96f0cff265257110280f460546..a014a5ab4edcc2ca517b2552ed655bca42297b6c 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/pEqn.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/pEqn.H
@@ -114,7 +114,7 @@
     {
         Uf = fvc::interpolate(U);
         surfaceVectorField n(mesh.Sf()/mesh.magSf());
-        Uf += mesh.Sf()*(phi - (mesh.Sf() & Uf))/sqr(mesh.magSf());
+        Uf += n*(phi/mesh.magSf() - (n & Uf));
     }
 
     // Make the fluxes relative to the mesh motion
diff --git a/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C b/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C
index 0a3d7ed11e97ed60f03d44a5b8e61705d303c4f5..ba7b4efa9ae1094b0e14f3c5a43d7a76868a3102 100644
--- a/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C
+++ b/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C
@@ -55,10 +55,10 @@ int main(int argc, char *argv[])
     pimpleControl pimple(mesh);
 
     #include "createFields.H"
-    #include "createUf.H"
     #include "readTimeControls.H"
     #include "createPrghCorrTypes.H"
     #include "correctPhi.H"
+    #include "createUf.H"
     #include "CourantNo.H"
     #include "setInitialDeltaT.H"
 
diff --git a/applications/solvers/multiphase/interFoam/interDyMFoam/pEqn.H b/applications/solvers/multiphase/interFoam/interDyMFoam/pEqn.H
index c30b361e72f9badfc98172483c455fc469552275..76441207919fe4427f6734750ff4de1a26c544f4 100644
--- a/applications/solvers/multiphase/interFoam/interDyMFoam/pEqn.H
+++ b/applications/solvers/multiphase/interFoam/interDyMFoam/pEqn.H
@@ -67,7 +67,7 @@
     {
         Uf = fvc::interpolate(U);
         surfaceVectorField n(mesh.Sf()/mesh.magSf());
-        Uf += mesh.Sf()*(phi - (mesh.Sf() & Uf))/sqr(mesh.magSf());
+        Uf += n*(phi/mesh.magSf() - (n & Uf));
     }
 
     // Make the fluxes relative to the mesh motion
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/interPhaseChangeDyMFoam.C b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/interPhaseChangeDyMFoam.C
index 0bfd8ad56eab6c4ca652b238ec5f4e8c36a3847b..810edeff308fb8ee57549e504f71aeb2a53b7ac4 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/interPhaseChangeDyMFoam.C
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/interPhaseChangeDyMFoam.C
@@ -65,10 +65,10 @@ int main(int argc, char *argv[])
     pimpleControl pimple(mesh);
 
     #include "createFields.H"
-    #include "createUf.H"
     #include "readTimeControls.H"
     #include "createPcorrTypes.H"
     #include "../interFoam/interDyMFoam/correctPhi.H"
+    #include "createUf.H"
     #include "CourantNo.H"
     #include "setInitialDeltaT.H"
 
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/pEqn.H b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/pEqn.H
index 7863f5d74851ebba806897821174ff43b6484bea..6fac1df95c2236b94da9914f01a8de5416ed230f 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/pEqn.H
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/pEqn.H
@@ -68,7 +68,7 @@
     {
         Uf = fvc::interpolate(U);
         surfaceVectorField n(mesh.Sf()/mesh.magSf());
-        Uf += mesh.Sf()*(phi - (mesh.Sf() & Uf))/sqr(mesh.magSf());
+        Uf += n*(phi/mesh.magSf() - (n & Uf));
     }
 
     // Make the fluxes relative to the mesh motion
diff --git a/applications/utilities/mesh/manipulation/createBaffles/createBaffles.C b/applications/utilities/mesh/manipulation/createBaffles/createBaffles.C
index cdbe770d1acdc461e9b77bd62ce02c7e0a805e9c..66bc3bcb1114b9d9f9ae0ab05e545c8ca576614d 100644
--- a/applications/utilities/mesh/manipulation/createBaffles/createBaffles.C
+++ b/applications/utilities/mesh/manipulation/createBaffles/createBaffles.C
@@ -83,6 +83,7 @@ label addPatch
             pp.inGroups().append(groupName);
         }
 
+
         // Add patch, create calculated everywhere
         fvMeshTools::addPatch
         (
@@ -207,7 +208,10 @@ void createFaces
                 }
                 else
                 {
-                    // Use neighbour side of face
+                    // Use neighbour side of face.
+                    // To keep faceZone pointing out of original neighbour
+                    // we don't need to set faceFlip since that cell
+                    // now becomes the owner
                     modifyOrAddFace
                     (
                         meshMod,
@@ -217,7 +221,7 @@ void createFaces
                         true,                       // face flip
                         newMasterPatches[i],        // patch for face
                         fZone.index(),              // zone for face
-                        true,                       // face flip in zone
+                        false,                      // face flip in zone
                         modifiedFace                // modify or add status
                     );
                 }
@@ -264,7 +268,7 @@ void createFaces
                         false,                  // face flip
                         newSlavePatches[i],     // patch for face
                         fZone.index(),          // zone for face
-                        false,                  // face flip in zone
+                        true,                   // face flip in zone
                         modifiedFace            // modify or add status
                     );
                 }
@@ -633,18 +637,17 @@ int main(int argc, char *argv[])
                 // Note: This is added for the particular case where we want
                 // master and slave in different groupNames
                 // (ie 3D thermal baffles)
-                bool groupBase = false;
-                if (patchSource.found("groupBase"))
-                {
-                    groupBase = readBool(patchSource.lookup("groupBase"));
 
-                    if (groupBase)
-                    {
-                        groupNameMaster = groupName + "Group_master";
-                        groupNameSlave = groupName + "Group_slave";
-                        patchDictMaster.set("coupleGroup", groupNameMaster);
-                        patchDictSlave.set("coupleGroup", groupNameSlave);
-                    }
+                Switch sameGroup
+                (
+                    patchSource.lookupOrDefault("sameGroup", true)
+                );
+                if (!sameGroup)
+                {
+                    groupNameMaster = groupName + "Group_master";
+                    groupNameSlave = groupName + "Group_slave";
+                    patchDictMaster.set("coupleGroup", groupNameMaster);
+                    patchDictSlave.set("coupleGroup", groupNameSlave);
                 }
 
                 addPatch(mesh, masterName, groupNameMaster, patchDictMaster);
@@ -815,11 +818,11 @@ int main(int argc, char *argv[])
             else
             {
                 const dictionary& patchSource = dict.subDict("patchPairs");
-                bool groupBase = false;
-                if (patchSource.found("groupBase"))
-                {
-                    groupBase = readBool(patchSource.lookup("groupBase"));
-                }
+
+                Switch sameGroup
+                (
+                    patchSource.lookupOrDefault("sameGroup", true)
+                );
 
                 const word& groupName = selectors[selectorI].name();
 
@@ -830,7 +833,7 @@ int main(int argc, char *argv[])
                         "patchFields"
                     );
 
-                    if (!groupBase)
+                    if (sameGroup)
                     {
                         // Add coupleGroup to all entries
                         forAllIter(dictionary, patchFieldsDict, iter)
diff --git a/applications/utilities/mesh/manipulation/splitMeshRegions/splitMeshRegions.C b/applications/utilities/mesh/manipulation/splitMeshRegions/splitMeshRegions.C
index 9771757c9edea8022c98326a7daeb9c0de171730..6d7b9fe6887707ebed82918389cb5ce3816eca45 100644
--- a/applications/utilities/mesh/manipulation/splitMeshRegions/splitMeshRegions.C
+++ b/applications/utilities/mesh/manipulation/splitMeshRegions/splitMeshRegions.C
@@ -1078,7 +1078,6 @@ labelList addRegionPatches
             mesh.boundaryMesh()
         );
 
-        //interfacePatches[interI] = addPatch(mesh, patch1);
         interfacePatches[interI] = fvMeshTools::addPatch
         (
             mesh,
@@ -1100,7 +1099,6 @@ labelList addRegionPatches
             point::zero,        // offset
             mesh.boundaryMesh()
         );
-        //addPatch(mesh, patch2);
         fvMeshTools::addPatch
         (
             mesh,
diff --git a/src/OpenFOAM/matrices/LduMatrix/LduMatrix/LduMatrix.H b/src/OpenFOAM/matrices/LduMatrix/LduMatrix/LduMatrix.H
index c2414b0f8bc24a44a14a4421f8368a2a437d939f..4291dbde4b6b205793000128b3ae0fb065738b6e 100644
--- a/src/OpenFOAM/matrices/LduMatrix/LduMatrix/LduMatrix.H
+++ b/src/OpenFOAM/matrices/LduMatrix/LduMatrix/LduMatrix.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -125,6 +125,9 @@ public:
             //- Maximum number of iterations in the solver
             label maxIter_;
 
+            //- Minimum number of iterations in the solver
+            label minIter_;
+
             //- Final convergence tolerance
             Type tolerance_;
 
diff --git a/src/OpenFOAM/matrices/LduMatrix/LduMatrix/LduMatrixSolver.C b/src/OpenFOAM/matrices/LduMatrix/LduMatrix/LduMatrixSolver.C
index 50831a0ec94afeac0f52aeca75926b7e31ad5a90..fcd1400d591f744b998b2fe65eb64537491b7890 100644
--- a/src/OpenFOAM/matrices/LduMatrix/LduMatrix/LduMatrixSolver.C
+++ b/src/OpenFOAM/matrices/LduMatrix/LduMatrix/LduMatrixSolver.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -135,6 +135,7 @@ Foam::LduMatrix<Type, DType, LUType>::solver::solver
     controlDict_(solverDict),
 
     maxIter_(1000),
+    minIter_(0),
     tolerance_(1e-6*pTraits<Type>::one),
     relTol_(pTraits<Type>::zero)
 {
@@ -148,6 +149,7 @@ template<class Type, class DType, class LUType>
 void Foam::LduMatrix<Type, DType, LUType>::solver::readControls()
 {
     readControl(controlDict_, maxIter_, "maxIter");
+    readControl(controlDict_, minIter_, "minIter");
     readControl(controlDict_, tolerance_, "tolerance");
     readControl(controlDict_, relTol_, "relTol");
 }
diff --git a/src/OpenFOAM/matrices/LduMatrix/Solvers/PBiCCCG/PBiCCCG.C b/src/OpenFOAM/matrices/LduMatrix/Solvers/PBiCCCG/PBiCCCG.C
index 7ee6da05dcf6bd6c733164fe77e85773b9296469..6a9b1779dd974acf5edaddd97dd3435fc581085b 100644
--- a/src/OpenFOAM/matrices/LduMatrix/Solvers/PBiCCCG/PBiCCCG.C
+++ b/src/OpenFOAM/matrices/LduMatrix/Solvers/PBiCCCG/PBiCCCG.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -104,7 +104,11 @@ Foam::PBiCCCG<Type, DType, LUType>::solve
     solverPerf.finalResidual() = solverPerf.initialResidual();
 
     // --- Check convergence, solve if not converged
-    if (!solverPerf.checkConvergence(this->tolerance_, this->relTol_))
+    if
+    (
+        this->minIter_ > 0
+     || !solverPerf.checkConvergence(this->tolerance_, this->relTol_)
+    )
     {
         // --- Select and construct the preconditioner
         autoPtr<typename LduMatrix<Type, DType, LUType>::preconditioner>
@@ -182,8 +186,11 @@ Foam::PBiCCCG<Type, DType, LUType>::solve
 
         } while
         (
-            solverPerf.nIterations()++ < this->maxIter_
-        && !(solverPerf.checkConvergence(this->tolerance_, this->relTol_))
+            (
+                solverPerf.nIterations()++ < this->maxIter_
+            && !solverPerf.checkConvergence(this->tolerance_, this->relTol_)
+            )
+         || solverPerf.nIterations() < this->minIter_
         );
     }
 
diff --git a/src/OpenFOAM/matrices/LduMatrix/Solvers/PCICG/PCICG.C b/src/OpenFOAM/matrices/LduMatrix/Solvers/PCICG/PCICG.C
index cc8f1d1c72b1eb0398f6c35dd3775409150e7f1c..5eeba9660554a81d654218d1cf49b9bc25ede14f 100644
--- a/src/OpenFOAM/matrices/LduMatrix/Solvers/PCICG/PCICG.C
+++ b/src/OpenFOAM/matrices/LduMatrix/Solvers/PCICG/PCICG.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -92,7 +92,11 @@ Foam::PCICG<Type, DType, LUType>::solve(Field<Type>& psi) const
     solverPerf.finalResidual() = solverPerf.initialResidual();
 
     // --- Check convergence, solve if not converged
-    if (!solverPerf.checkConvergence(this->tolerance_, this->relTol_))
+    if
+    (
+        this->minIter_ > 0
+     || !solverPerf.checkConvergence(this->tolerance_, this->relTol_)
+    )
     {
         // --- Select and construct the preconditioner
         autoPtr<typename LduMatrix<Type, DType, LUType>::preconditioner>
@@ -174,8 +178,11 @@ Foam::PCICG<Type, DType, LUType>::solve(Field<Type>& psi) const
 
         } while
         (
-            solverPerf.nIterations()++ < this->maxIter_
-        && !(solverPerf.checkConvergence(this->tolerance_, this->relTol_))
+            (
+                solverPerf.nIterations()++ < this->maxIter_
+            && !solverPerf.checkConvergence(this->tolerance_, this->relTol_)
+            )
+         || solverPerf.nIterations() < this->minIter_
         );
     }
 
diff --git a/src/OpenFOAM/matrices/LduMatrix/Solvers/SmoothSolver/SmoothSolver.C b/src/OpenFOAM/matrices/LduMatrix/Solvers/SmoothSolver/SmoothSolver.C
index 9cf5c81223b71386ed7f40a0737045a30766a57d..5dea9207d6c6fa619f609e154544f67485bec5df 100644
--- a/src/OpenFOAM/matrices/LduMatrix/Solvers/SmoothSolver/SmoothSolver.C
+++ b/src/OpenFOAM/matrices/LduMatrix/Solvers/SmoothSolver/SmoothSolver.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -113,7 +113,11 @@ Foam::SmoothSolver<Type, DType, LUType>::solve(Field<Type>& psi) const
 
 
         // Check convergence, solve if not converged
-        if (!solverPerf.checkConvergence(this->tolerance_, this->relTol_))
+        if
+        (
+            this->minIter_ > 0
+         || !solverPerf.checkConvergence(this->tolerance_, this->relTol_)
+        )
         {
             autoPtr<typename LduMatrix<Type, DType, LUType>::smoother>
             smootherPtr = LduMatrix<Type, DType, LUType>::smoother::New
@@ -140,8 +144,11 @@ Foam::SmoothSolver<Type, DType, LUType>::solve(Field<Type>& psi) const
                 );
             } while
             (
-                (solverPerf.nIterations() += nSweeps_) < this->maxIter_
-             && !(solverPerf.checkConvergence(this->tolerance_, this->relTol_))
+                (
+                    (solverPerf.nIterations() += nSweeps_) < this->maxIter_
+                && !solverPerf.checkConvergence(this->tolerance_, this->relTol_)
+                )
+             || solverPerf.nIterations() < this->minIter_
             );
         }
     }
diff --git a/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrix.C b/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrix.C
index fd9c43da08dead04f1f4bac3b7a0a12bec88512b..b8bc5c930c5fa900a692516ed1db45a3f232c8bc 100644
--- a/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrix.C
+++ b/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrix.C
@@ -31,7 +31,7 @@ License
 
 namespace Foam
 {
-defineTypeNameAndDebug(lduMatrix, 1);
+    defineTypeNameAndDebug(lduMatrix, 1);
 }
 
 
diff --git a/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrix.H b/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrix.H
index a75668dfddbfb086c1c9485f63132a86426d2d31..fdaf834a74c5889c69f4a3ce846834040ac32a04 100644
--- a/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrix.H
+++ b/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrix.H
@@ -107,6 +107,9 @@ public:
             //- Maximum number of iterations in the solver
             label maxIter_;
 
+            //- Minimum number of iterations in the solver
+            label minIter_;
+
             //- Final convergence tolerance
             scalar tolerance_;
 
diff --git a/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrixSolver.C b/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrixSolver.C
index cee5c1dc2f1d30ce7441ce2834927d710ec5136d..aed21fe9f734e4a9fff93760c5c51a37fe363bd9 100644
--- a/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrixSolver.C
+++ b/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrixSolver.C
@@ -164,6 +164,7 @@ Foam::lduMatrix::solver::solver
 void Foam::lduMatrix::solver::readControls()
 {
     maxIter_   = controlDict_.lookupOrDefault<label>("maxIter", 1000);
+    minIter_   = controlDict_.lookupOrDefault<label>("minIter", 0);
     tolerance_ = controlDict_.lookupOrDefault<scalar>("tolerance", 1e-6);
     relTol_    = controlDict_.lookupOrDefault<scalar>("relTol", 0);
 }
diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolverSolve.C b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolverSolve.C
index 32602d3f1c6ea1dcd638f2c6b0e07871581a8ddc..5b58b1c438d83cb7a89271e40262337eb85b9e41 100644
--- a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolverSolve.C
+++ b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolverSolve.C
@@ -69,7 +69,11 @@ Foam::solverPerformance Foam::GAMGSolver::solve
 
 
     // Check convergence, solve if not converged
-    if (!solverPerf.checkConvergence(tolerance_, relTol_))
+    if
+    (
+        minIter_ > 0
+     || !solverPerf.checkConvergence(tolerance_, relTol_)
+    )
     {
         // Create coarse grid correction fields
         PtrList<scalarField> coarseCorrFields;
@@ -131,8 +135,11 @@ Foam::solverPerformance Foam::GAMGSolver::solve
             }
         } while
         (
-            ++solverPerf.nIterations() < maxIter_
-         && !(solverPerf.checkConvergence(tolerance_, relTol_))
+            (
+              ++solverPerf.nIterations() < maxIter_
+            && !solverPerf.checkConvergence(tolerance_, relTol_)
+            )
+         || solverPerf.nIterations() < minIter_
         );
     }
 
diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/PBiCG/PBiCG.C b/src/OpenFOAM/matrices/lduMatrix/solvers/PBiCG/PBiCG.C
index 1a221013e3abf5fbdd5cf80c630840aedefef768..3b6bbb88ff79132deadff44479feea97a2d83390 100644
--- a/src/OpenFOAM/matrices/lduMatrix/solvers/PBiCG/PBiCG.C
+++ b/src/OpenFOAM/matrices/lduMatrix/solvers/PBiCG/PBiCG.C
@@ -120,7 +120,11 @@ Foam::solverPerformance Foam::PBiCG::solve
     solverPerf.finalResidual() = solverPerf.initialResidual();
 
     // --- Check convergence, solve if not converged
-    if (!solverPerf.checkConvergence(tolerance_, relTol_))
+    if
+    (
+        minIter_ > 0
+     || !solverPerf.checkConvergence(tolerance_, relTol_)
+    )
     {
         // --- Select and construct the preconditioner
         autoPtr<lduMatrix::preconditioner> preconPtr =
@@ -192,8 +196,11 @@ Foam::solverPerformance Foam::PBiCG::solve
                /normFactor;
         } while
         (
-            solverPerf.nIterations()++ < maxIter_
-        && !(solverPerf.checkConvergence(tolerance_, relTol_))
+            (
+                solverPerf.nIterations()++ < maxIter_
+            && !solverPerf.checkConvergence(tolerance_, relTol_)
+            )
+         || solverPerf.nIterations() < minIter_
         );
     }
 
diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/PCG/PCG.C b/src/OpenFOAM/matrices/lduMatrix/solvers/PCG/PCG.C
index b3d0c3d4f1b6e55034b0e13f0e9919a63fa20a27..a684c2ecf18dc31e9c3f8f292685794cce633f62 100644
--- a/src/OpenFOAM/matrices/lduMatrix/solvers/PCG/PCG.C
+++ b/src/OpenFOAM/matrices/lduMatrix/solvers/PCG/PCG.C
@@ -111,7 +111,11 @@ Foam::solverPerformance Foam::PCG::solve
     solverPerf.finalResidual() = solverPerf.initialResidual();
 
     // --- Check convergence, solve if not converged
-    if (!solverPerf.checkConvergence(tolerance_, relTol_))
+    if
+    (
+        minIter_ > 0
+     || !solverPerf.checkConvergence(tolerance_, relTol_)
+    )
     {
         // --- Select and construct the preconditioner
         autoPtr<lduMatrix::preconditioner> preconPtr =
@@ -177,8 +181,11 @@ Foam::solverPerformance Foam::PCG::solve
 
         } while
         (
-            solverPerf.nIterations()++ < maxIter_
-        && !(solverPerf.checkConvergence(tolerance_, relTol_))
+            (
+                solverPerf.nIterations()++ < maxIter_
+            && !solverPerf.checkConvergence(tolerance_, relTol_)
+            )
+         || solverPerf.nIterations() < minIter_
         );
     }
 
diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/smoothSolver/smoothSolver.C b/src/OpenFOAM/matrices/lduMatrix/solvers/smoothSolver/smoothSolver.C
index a83ceaca3ece7df4448e00879e1cd78887833b2c..d073e73c372d51e7cf647dd6e42bde6da64d5efd 100644
--- a/src/OpenFOAM/matrices/lduMatrix/solvers/smoothSolver/smoothSolver.C
+++ b/src/OpenFOAM/matrices/lduMatrix/solvers/smoothSolver/smoothSolver.C
@@ -138,7 +138,11 @@ Foam::solverPerformance Foam::smoothSolver::solve
 
 
         // Check convergence, solve if not converged
-        if (!solverPerf.checkConvergence(tolerance_, relTol_))
+        if
+        (
+            minIter_ > 0
+         || !solverPerf.checkConvergence(tolerance_, relTol_)
+        )
         {
             autoPtr<lduMatrix::smoother> smootherPtr = lduMatrix::smoother::New
             (
@@ -176,8 +180,11 @@ Foam::solverPerformance Foam::smoothSolver::solve
                 )/normFactor;
             } while
             (
-                (solverPerf.nIterations() += nSweeps_) < maxIter_
-             && !(solverPerf.checkConvergence(tolerance_, relTol_))
+                (
+                    (solverPerf.nIterations() += nSweeps_) < maxIter_
+                && !solverPerf.checkConvergence(tolerance_, relTol_)
+                )
+             || solverPerf.nIterations() < minIter_
             );
         }
     }
diff --git a/src/OpenFOAM/meshes/polyMesh/polyPatches/derived/wall/wallPolyPatch.C b/src/OpenFOAM/meshes/polyMesh/polyPatches/derived/wall/wallPolyPatch.C
index f6c3d5106155f37fe7fa4eae84fabbf6c8ea5b42..9263609ee5cfa6a53a7d2093189fe82268f8dc4f 100644
--- a/src/OpenFOAM/meshes/polyMesh/polyPatches/derived/wall/wallPolyPatch.C
+++ b/src/OpenFOAM/meshes/polyMesh/polyPatches/derived/wall/wallPolyPatch.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -49,7 +49,13 @@ Foam::wallPolyPatch::wallPolyPatch
 )
 :
     polyPatch(name, size, start, index, bm, patchType)
-{}
+{
+    //  wall is not constraint type so add wall group explicitly
+    if (findIndex(inGroups(), typeName) == -1)
+    {
+        inGroups().append(typeName);
+    }
+}
 
 
 Foam::wallPolyPatch::wallPolyPatch
@@ -62,7 +68,13 @@ Foam::wallPolyPatch::wallPolyPatch
 )
 :
     polyPatch(name, dict, index, bm, patchType)
-{}
+{
+    //  wall is not constraint type so add wall group explicitly
+    if (findIndex(inGroups(), typeName) == -1)
+    {
+        inGroups().append(typeName);
+    }
+}
 
 
 Foam::wallPolyPatch::wallPolyPatch
diff --git a/src/dynamicMesh/polyMeshFilter/polyMeshFilter.C b/src/dynamicMesh/polyMeshFilter/polyMeshFilter.C
index 968ea6c483595cab695831bdb4ba12e3a687a139..28398bdc92a1e5b6a1d181217a62b197b5826ffe 100644
--- a/src/dynamicMesh/polyMeshFilter/polyMeshFilter.C
+++ b/src/dynamicMesh/polyMeshFilter/polyMeshFilter.C
@@ -267,7 +267,11 @@ Foam::label Foam::polyMeshFilter::filterFacesLoop(const label nOriginalBadFaces)
             newBadFaces = false;
             forAll(mesh_.points(), pI)
             {
-                if (isErrorPoint[origToCurrentPointMap[pI]])
+                if
+                (
+                    origToCurrentPointMap[pI] >= 0
+                 && isErrorPoint[origToCurrentPointMap[pI]]
+                )
                 {
                     if (!newErrorPoint[pI])
                     {
@@ -862,14 +866,22 @@ void Foam::polyMeshFilter::updateOldToNewPointMap
     {
         label oldPointI = origToCurrentPointMap[origPointI];
 
-        if (oldPointI < currToNew.size())
+        if (oldPointI != -1)
         {
             label newPointI = currToNew[oldPointI];
 
-            if (newPointI != -1)
+            if (newPointI >= 0)
             {
                 origToCurrentPointMap[origPointI] = newPointI;
             }
+            else if (newPointI == -1)
+            {
+                origToCurrentPointMap[origPointI] = -1;
+            }
+            else
+            {
+                origToCurrentPointMap[origPointI] = -newPointI-2;
+            }
         }
     }
 }
diff --git a/src/edgeMesh/edgeMesh.H b/src/edgeMesh/edgeMesh.H
index 534c1fb5687a8bca349d6fd86965cbb598ab1d1c..c8abb55169d6cb374630822dc7b612e13e44a7d2 100644
--- a/src/edgeMesh/edgeMesh.H
+++ b/src/edgeMesh/edgeMesh.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -31,6 +31,7 @@ SourceFiles
     edgeMeshI.H
     edgeMesh.C
     edgeMeshIO.C
+    edgeMeshNew.C
 
 \*---------------------------------------------------------------------------*/
 
diff --git a/src/edgeMesh/edgeMeshNew.C b/src/edgeMesh/edgeMeshNew.C
index 6254ffd3f4a2a3d63dd68ef22e3cb6ff3aa32965..da7091c73a9559088aeb0c9babba386298955ba5 100644
--- a/src/edgeMesh/edgeMeshNew.C
+++ b/src/edgeMesh/edgeMeshNew.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-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -48,14 +48,11 @@ Foam::autoPtr<Foam::edgeMesh> Foam::edgeMesh::New
             << exit(FatalError);
     }
 
-    return autoPtr< edgeMesh >(cstrIter()(name));
+    return autoPtr<edgeMesh>(cstrIter()(name));
 }
 
 
-Foam::autoPtr<Foam::edgeMesh> Foam::edgeMesh::New
-(
-    const fileName& name
-)
+Foam::autoPtr<Foam::edgeMesh> Foam::edgeMesh::New(const fileName& name)
 {
     word ext = name.ext();
     if (ext == "gz")
diff --git a/src/edgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.H b/src/edgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.H
index 3695a3901261e44256bb4c9c90474b94283a7c2d..fdeeeb8dd0a9cf67ec5709ca5e352fd20c9b7f2d 100644
--- a/src/edgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.H
+++ b/src/edgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.H
@@ -161,7 +161,7 @@ private:
         //  points and edges, unsorted
         vectorField normals_;
 
-        //-
+        //- Type per normal: which side of normal to mesh
         List<sideVolumeType> normalVolumeTypes_;
 
         //- Flat and open edges require the direction of the edge
diff --git a/src/edgeMesh/featureEdgeMesh/featureEdgeMesh.H b/src/edgeMesh/featureEdgeMesh/featureEdgeMesh.H
index 6275a5acf4ebdb5e109e57aca92c26ea063d36df..7f3a06cdf3b75d02f35c5fea1e002d7d2a6e9517 100644
--- a/src/edgeMesh/featureEdgeMesh/featureEdgeMesh.H
+++ b/src/edgeMesh/featureEdgeMesh/featureEdgeMesh.H
@@ -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-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -78,6 +78,8 @@ public:
         featureEdgeMesh(const IOobject&, const featureEdgeMesh&);
 
 
+    // IO
+
         //- ReadData function required for regIOobject read operation
         virtual bool readData(Istream&);
 
diff --git a/src/finiteVolume/cfdTools/compressible/createRhoUf.H b/src/finiteVolume/cfdTools/compressible/createRhoUf.H
index e91115ae75b2a5b9a6e6f932352c8129bc4b693f..312aec60dca9cdaffbd448bd17b3053e9731a3fe 100644
--- a/src/finiteVolume/cfdTools/compressible/createRhoUf.H
+++ b/src/finiteVolume/cfdTools/compressible/createRhoUf.H
@@ -46,9 +46,14 @@ surfaceVectorField rhoUf
         IOobject::READ_IF_PRESENT,
         IOobject::AUTO_WRITE
     ),
-    linearInterpolate(rho*U)
+    fvc::interpolate(rho*U)
 );
 
+{
+    surfaceVectorField n(mesh.Sf()/mesh.magSf());
+    rhoUf += n*(phi/mesh.magSf() - (n & rhoUf));
+}
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 #endif
diff --git a/src/finiteVolume/cfdTools/incompressible/createUf.H b/src/finiteVolume/cfdTools/incompressible/createUf.H
index aab92ce0e2aec37304bd634f72bcbee68ed80189..0b65f2daed23a820fd4850cea3852e61d4ddf21d 100644
--- a/src/finiteVolume/cfdTools/incompressible/createUf.H
+++ b/src/finiteVolume/cfdTools/incompressible/createUf.H
@@ -46,9 +46,15 @@ surfaceVectorField Uf
         IOobject::READ_IF_PRESENT,
         IOobject::AUTO_WRITE
     ),
-    linearInterpolate(U)
+    fvc::interpolate(U)
 );
 
+{
+    surfaceVectorField n(mesh.Sf()/mesh.magSf());
+    Uf += n*(phi/mesh.magSf() - (n & Uf));
+}
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 #endif
diff --git a/src/fvMotionSolver/fvMotionSolvers/displacement/laplacian/displacementLaplacianFvMotionSolver.C b/src/fvMotionSolver/fvMotionSolvers/displacement/laplacian/displacementLaplacianFvMotionSolver.C
index 35db99fe0d7b77333efeda2f7ad159763dc3270e..d4a3ca5a0a7c1f7b3dfdd2fe55eb3879d26a68b9 100644
--- a/src/fvMotionSolver/fvMotionSolvers/displacement/laplacian/displacementLaplacianFvMotionSolver.C
+++ b/src/fvMotionSolver/fvMotionSolvers/displacement/laplacian/displacementLaplacianFvMotionSolver.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -139,6 +139,21 @@ Foam::displacementLaplacianFvMotionSolver::
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
+Foam::motionDiffusivity&
+Foam::displacementLaplacianFvMotionSolver::diffusivity()
+{
+    if (!diffusivityPtr_.valid())
+    {
+        diffusivityPtr_ = motionDiffusivity::New
+        (
+            fvMesh_,
+            coeffDict().lookup("diffusivity")
+        );
+    }
+    return diffusivityPtr_();
+}
+
+
 Foam::tmp<Foam::pointField>
 Foam::displacementLaplacianFvMotionSolver::curPoints() const
 {
@@ -210,14 +225,14 @@ void Foam::displacementLaplacianFvMotionSolver::solve()
     // the motionSolver accordingly
     movePoints(fvMesh_.points());
 
-    diffusivityPtr_->correct();
+    diffusivity().correct();
     pointDisplacement_.boundaryField().updateCoeffs();
 
     Foam::solve
     (
         fvm::laplacian
         (
-            diffusivityPtr_->operator()(),
+            diffusivity().operator()(),
             cellDisplacement_,
             "laplacian(diffusivity,cellDisplacement)"
         )
@@ -234,12 +249,7 @@ void Foam::displacementLaplacianFvMotionSolver::updateMesh
 
     // Update diffusivity. Note two stage to make sure old one is de-registered
     // before creating/registering new one.
-    diffusivityPtr_.reset(NULL);
-    diffusivityPtr_ = motionDiffusivity::New
-    (
-        fvMesh_,
-        coeffDict().lookup("diffusivity")
-    );
+    diffusivityPtr_.clear();
 }
 
 
diff --git a/src/fvMotionSolver/fvMotionSolvers/displacement/laplacian/displacementLaplacianFvMotionSolver.H b/src/fvMotionSolver/fvMotionSolvers/displacement/laplacian/displacementLaplacianFvMotionSolver.H
index c0b4e9970a25ae31d9b3f6970f8b779263b4383e..47ad2c672c9a8edd77a53cd1594f6680cb10d46a 100644
--- a/src/fvMotionSolver/fvMotionSolvers/displacement/laplacian/displacementLaplacianFvMotionSolver.H
+++ b/src/fvMotionSolver/fvMotionSolvers/displacement/laplacian/displacementLaplacianFvMotionSolver.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -53,7 +53,6 @@ class motionDiffusivity;
 
 class displacementLaplacianFvMotionSolver
 :
-//    public displacementFvMotionSolver
     public displacementMotionSolver,
     public fvMotionSolverCore
 {
@@ -120,6 +119,9 @@ public:
             return cellDisplacement_;
         }
 
+        //- Return reference to the diffusivity field
+        motionDiffusivity& diffusivity();
+
         //- Return point location obtained from the current motion field
         virtual tmp<pointField> curPoints() const;
 
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.C b/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.C
index 8d1729361e1d370a0357c0d5b8d9a20e746f1b89..51272f3560ed8d25a0899d74885e6818e7ba7c17 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.C
@@ -26,7 +26,6 @@ License
 #include "SurfaceFilmModel.H"
 #include "surfaceFilmModel.H"
 #include "mathematicalConstants.H"
-#include "mappedPatchBase.H"
 
 using namespace Foam::constant;
 
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.H b/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.H
index 0f0a4d4196725d34152fd598731998d20fd1f721..9098782204e0f5041d87f3724bd8bd2f0058c296 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.H
@@ -55,8 +55,6 @@ namespace regionModels
     }
 }
 
-class mappedPatchBase;
-
 /*---------------------------------------------------------------------------*\
                       Class SurfaceFilmModel Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/mesh/autoMesh/autoHexMesh/externalDisplacementMeshMover/medialAxisMeshMover.C b/src/mesh/autoMesh/autoHexMesh/externalDisplacementMeshMover/medialAxisMeshMover.C
index eb223c88414a6c294290464d790e15b4629d74a1..b2a142accfada9399ab60ab44cbdf61371215fe2 100644
--- a/src/mesh/autoMesh/autoHexMesh/externalDisplacementMeshMover/medialAxisMeshMover.C
+++ b/src/mesh/autoMesh/autoHexMesh/externalDisplacementMeshMover/medialAxisMeshMover.C
@@ -66,7 +66,6 @@ Foam::labelList Foam::medialAxisMeshMover::getFixedValueBCs
         if (isA<valuePointPatchField<vector> >(patchFld))
         {
             adaptPatchIDs.append(patchI);
-            //Info<< "Detected adapt patch " << patchFld.patch().name() << endl;
         }
     }
     return adaptPatchIDs;
@@ -1259,6 +1258,7 @@ handleFeatureAngleLayerTerminations
 void Foam::medialAxisMeshMover::findIsolatedRegions
 (
     const scalar minCosLayerTermination,
+    const bool detectExtrusionIsland,
     const PackedBoolList& isMasterPoint,
     const PackedBoolList& isMasterEdge,
     const labelList& meshEdges,
@@ -1268,6 +1268,8 @@ void Foam::medialAxisMeshMover::findIsolatedRegions
 ) const
 {
     const indirectPrimitivePatch& pp = adaptPatchPtr_();
+    const labelListList& pointFaces = pp.pointFaces();
+
 
     Info<< typeName << " : Removing isolated regions ..." << endl;
 
@@ -1292,41 +1294,111 @@ void Foam::medialAxisMeshMover::findIsolatedRegions
         syncPatchDisplacement(minThickness, patchDisp, extrudeStatus);
 
 
-        // Do not extrude from point where all neighbouring
-        // faces are not grown
-        // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-        boolList extrudedFaces(pp.size(), true);
-        forAll(pp.localFaces(), faceI)
+
+        // Detect either:
+        // - point where all surrounding points are not extruded
+        //   (detectExtrusionIsland)
+        // or
+        // - point where all the faces surrounding it are not fully
+        //   extruded
+
+        boolList keptPoints(pp.nPoints(), false);
+
+        if (detectExtrusionIsland)
         {
-            const face& f = pp.localFaces()[faceI];
-            forAll(f, fp)
+            // Do not extrude from point where all neighbouring
+            // points are not grown
+            // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+            labelList islandPoint(pp.size(), -1);
+            forAll(pp, faceI)
             {
-                if (extrudeStatus[f[fp]] == autoLayerDriver::NOEXTRUDE)
+                const face& f = pp.localFaces()[faceI];
+
+                forAll(f, fp)
                 {
-                    extrudedFaces[faceI] = false;
-                    break;
+                    label patchPointI = f[fp];
+
+                    if (extrudeStatus[f[fp]] != autoLayerDriver::NOEXTRUDE)
+                    {
+                        if (islandPoint[faceI] == -1)
+                        {
+                            // First point to extrude
+                            islandPoint[faceI] = patchPointI;
+                        }
+                        else
+                        {
+                            // Second or more point to extrude
+                            islandPoint[faceI] = -2;
+                        }
+                    }
                 }
             }
-        }
 
-        const labelListList& pointFaces = pp.pointFaces();
+            // islandPoint:
+            //  -1 : no point extruded
+            //  -2 : >= 2 points extruded
+            //  >=0: label of point extruded
 
-        boolList keptPoints(pp.nPoints(), false);
-        forAll(keptPoints, patchPointI)
+            // Check all surrounding faces that I am the islandPoint
+            boolList keptPoints(pp.nPoints(), false);
+            forAll(pointFaces, patchPointI)
+            {
+                if (extrudeStatus[patchPointI] != autoLayerDriver::NOEXTRUDE)
+                {
+                    const labelList& pFaces = pointFaces[patchPointI];
+
+                    forAll(pFaces, i)
+                    {
+                        label faceI = pFaces[i];
+                        if (islandPoint[faceI] != patchPointI)
+                        {
+                            keptPoints[patchPointI] = true;
+                            break;
+                        }
+                    }
+                }
+            }
+        }
+        else
         {
-            const labelList& pFaces = pointFaces[patchPointI];
+            // Do not extrude from point where all neighbouring
+            // faces are not grown
+            // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-            forAll(pFaces, i)
+            boolList extrudedFaces(pp.size(), true);
+            forAll(pp.localFaces(), faceI)
             {
-                label faceI = pFaces[i];
-                if (extrudedFaces[faceI])
+                const face& f = pp.localFaces()[faceI];
+                forAll(f, fp)
                 {
-                    keptPoints[patchPointI] = true;
-                    break;
+                    if (extrudeStatus[f[fp]] == autoLayerDriver::NOEXTRUDE)
+                    {
+                        extrudedFaces[faceI] = false;
+                        break;
+                    }
+                }
+            }
+
+            const labelListList& pointFaces = pp.pointFaces();
+
+            forAll(keptPoints, patchPointI)
+            {
+                const labelList& pFaces = pointFaces[patchPointI];
+
+                forAll(pFaces, i)
+                {
+                    label faceI = pFaces[i];
+                    if (extrudedFaces[faceI])
+                    {
+                        keptPoints[patchPointI] = true;
+                        break;
+                    }
                 }
             }
         }
 
+
         syncTools::syncPointList
         (
             mesh(),
@@ -1344,8 +1416,8 @@ void Foam::medialAxisMeshMover::findIsolatedRegions
             {
                 if (unmarkExtrusion(patchPointI, patchDisp, extrudeStatus))
                 {
-                   nPointCounter++;
-                   nChanged++;
+                    nPointCounter++;
+                    nChanged++;
                 }
             }
         }
@@ -1701,6 +1773,13 @@ void Foam::medialAxisMeshMover::calculateDisplacement
         mesh().globalData().nTotalPoints()
     );
 
+    //- Use strick extrusionIsland detection
+    const Switch detectExtrusionIsland = coeffDict.lookupOrDefault<label>
+    (
+        "detectExtrusionIsland",
+        true
+    );
+
 
     // Precalulate master points/edge (only relevant for shared points/edges)
     const PackedBoolList isMasterPoint(syncTools::getMasterPoints(mesh()));
@@ -1851,6 +1930,8 @@ void Foam::medialAxisMeshMover::calculateDisplacement
     findIsolatedRegions
     (
         minCosLayerTermination,
+        detectExtrusionIsland,
+
         isMasterPoint,
         isMasterEdge,
         meshEdges,
diff --git a/src/mesh/autoMesh/autoHexMesh/externalDisplacementMeshMover/medialAxisMeshMover.H b/src/mesh/autoMesh/autoHexMesh/externalDisplacementMeshMover/medialAxisMeshMover.H
index a81b073dd2995a8233b94370bc3b6b976c9f5e9d..b402ecba259731069ccc03c8f02b8be9a87f2fb4 100644
--- a/src/mesh/autoMesh/autoHexMesh/externalDisplacementMeshMover/medialAxisMeshMover.H
+++ b/src/mesh/autoMesh/autoHexMesh/externalDisplacementMeshMover/medialAxisMeshMover.H
@@ -219,6 +219,7 @@ class medialAxisMeshMover
             void findIsolatedRegions
             (
                 const scalar minCosLayerTermination,
+                const bool detectExtrusionIsland,
                 const PackedBoolList& isMasterPoint,
                 const PackedBoolList& isMasterEdge,
                 const labelList& meshEdges,
diff --git a/src/mesh/autoMesh/autoHexMesh/refinementFeatures/refinementFeatures.C b/src/mesh/autoMesh/autoHexMesh/refinementFeatures/refinementFeatures.C
index f3d969e69113b09948af15f631a9c8f1672ad404..a5109bc3c88a9c322211b1e80896d293a800d9b3 100644
--- a/src/mesh/autoMesh/autoHexMesh/refinementFeatures/refinementFeatures.C
+++ b/src/mesh/autoMesh/autoHexMesh/refinementFeatures/refinementFeatures.C
@@ -303,7 +303,7 @@ Foam::refinementFeatures::refinementFeatures
 
         Info<< "Detected " << featurePoints.size()
             << " featurePoints out of " << pointEdges.size()
-            << " on feature " << eMesh.name() << endl;
+            << " points on feature " << eMesh.name() << endl;
 
         buildTrees(i, featurePoints);
     }
@@ -372,7 +372,7 @@ Foam::refinementFeatures::refinementFeatures
 
         Info<< "Detected " << featurePoints.size()
             << " featurePoints out of " << points.size()
-            << " on feature " << eMesh.name()
+            << " points on feature " << eMesh.name()
             << " when using feature cos " << minCos << endl;
 
         buildTrees(i, featurePoints);
diff --git a/src/meshTools/mappedPatches/mappedPolyPatch/mappedPolyPatch.C b/src/meshTools/mappedPatches/mappedPolyPatch/mappedPolyPatch.C
index 804b96affbc2bbab126ef28d3849e60e07d15f70..6732e5c7b18d8ca2462e9074dc6d4e22bcbfcbf3 100644
--- a/src/meshTools/mappedPatches/mappedPolyPatch/mappedPolyPatch.C
+++ b/src/meshTools/mappedPatches/mappedPolyPatch/mappedPolyPatch.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -51,7 +51,13 @@ Foam::mappedPolyPatch::mappedPolyPatch
 :
     polyPatch(name, size, start, index, bm, patchType),
     mappedPatchBase(static_cast<const polyPatch&>(*this))
-{}
+{
+    //  mapped is not constraint type so add mapped group explicitly
+    if (findIndex(inGroups(), typeName) == -1)
+    {
+        inGroups().append(typeName);
+    }
+}
 
 
 Foam::mappedPolyPatch::mappedPolyPatch
@@ -115,7 +121,13 @@ Foam::mappedPolyPatch::mappedPolyPatch
 :
     polyPatch(name, dict, index, bm, patchType),
     mappedPatchBase(*this, dict)
-{}
+{
+    //  mapped is not constraint type so add mapped group explicitly
+    if (findIndex(inGroups(), typeName) == -1)
+    {
+        inGroups().append(typeName);
+    }
+}
 
 
 Foam::mappedPolyPatch::mappedPolyPatch
diff --git a/src/meshTools/mappedPatches/mappedPolyPatch/mappedWallPolyPatch.C b/src/meshTools/mappedPatches/mappedPolyPatch/mappedWallPolyPatch.C
index 61bc54a3d0fc630d0ea2382460b604f4eeb4decb..243d0a804ae10a776f5a4c0a69837ab0e7ae4f2d 100644
--- a/src/meshTools/mappedPatches/mappedPolyPatch/mappedWallPolyPatch.C
+++ b/src/meshTools/mappedPatches/mappedPolyPatch/mappedWallPolyPatch.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -25,6 +25,7 @@ License
 
 #include "mappedWallPolyPatch.H"
 #include "addToRunTimeSelectionTable.H"
+#include "mappedPolyPatch.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -56,7 +57,13 @@ Foam::mappedWallPolyPatch::mappedWallPolyPatch
 :
     wallPolyPatch(name, size, start, index, bm, patchType),
     mappedPatchBase(static_cast<const polyPatch&>(*this))
-{}
+{
+    //  mapped is not constraint type so add mapped group explicitly
+    if (findIndex(inGroups(), mappedPolyPatch::typeName) == -1)
+    {
+        inGroups().append(mappedPolyPatch::typeName);
+    }
+}
 
 
 Foam::mappedWallPolyPatch::mappedWallPolyPatch
@@ -120,7 +127,13 @@ Foam::mappedWallPolyPatch::mappedWallPolyPatch
 :
     wallPolyPatch(name, dict, index, bm, patchType),
     mappedPatchBase(*this, dict)
-{}
+{
+    //  mapped is not constraint type so add mapped group explicitly
+    if (findIndex(inGroups(), mappedPolyPatch::typeName) == -1)
+    {
+        inGroups().append(mappedPolyPatch::typeName);
+    }
+}
 
 
 Foam::mappedWallPolyPatch::mappedWallPolyPatch
diff --git a/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C b/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C
index 0327dd1da758b485c23cef211752c8b97c248f3e..4b51db9f17b1d1e0e57712a502e7ab078a962d4e 100644
--- a/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C
+++ b/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C
@@ -263,9 +263,9 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::updateCoeffs()
                 forAll (thicknessLayers_, iLayer)
                 {
                     const scalar l = thicknessLayers_[iLayer];
-                    if (l > 0.0)
+                    if (kappaLayers_[iLayer] > 0.0)
                     {
-                        totalSolidRes += kappaLayers_[iLayer]/l;
+                        totalSolidRes += l/kappaLayers_[iLayer];
                     }
                 }
             }
diff --git a/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.org/T b/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.org/T
index cba8f5dedda0645d287bef1315539e78fc4cedc8..09fb826c639e52e1df9d483f5cee85f2c9bd066a 100644
--- a/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.org/T
+++ b/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.org/T
@@ -44,6 +44,11 @@ boundaryField
     {
         type            empty;
     }
+    processor
+    {
+        type            processor;
+        value           $internalField;
+    }
 }
 
 
diff --git a/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.org/U b/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.org/U
index 713c1df761387fcda8db742d5c3cefc4789a7da2..94521707e2bad885cfcd41175f934f7909fadc39 100644
--- a/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.org/U
+++ b/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.org/U
@@ -21,6 +21,9 @@ internalField   uniform (0.1 0 0);
 
 boundaryField
 {
+    //- Set patchGroups for constraint patches
+    #include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes"
+
     floor
     {
         type            fixedValue;
diff --git a/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.org/alphat b/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.org/alphat
index d98e7838b44fa9b51307b7398618dec8422c1e6f..e0c1d0dfbead048eee4637b2986e04cf5735a784 100644
--- a/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.org/alphat
+++ b/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.org/alphat
@@ -21,6 +21,9 @@ internalField   uniform 0;
 
 boundaryField
 {
+    //- Set patchGroups for constraint patches
+    #include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes"
+
     floor
     {
         type            compressible::alphatWallFunction;
diff --git a/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.org/epsilon b/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.org/epsilon
index 7e7f3670e7b94a0b8a43a240b9140c263b35183e..7ac88b9230b1da2c8e6d50303e375c519fcd50b2 100644
--- a/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.org/epsilon
+++ b/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.org/epsilon
@@ -21,6 +21,9 @@ internalField   uniform 0.01;
 
 boundaryField
 {
+    //- Set patchGroups for constraint patches
+    #include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes"
+
     floor
     {
         type            compressible::epsilonWallFunction;
diff --git a/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.org/k b/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.org/k
index 6e03f3ece448971b124b43ea9776832c1b639d80..97f41e6e200425dfb58ebf718a4f637940b599c9 100644
--- a/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.org/k
+++ b/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.org/k
@@ -21,6 +21,9 @@ internalField   uniform 0.1;
 
 boundaryField
 {
+    //- Set patchGroups for constraint patches
+    #include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes"
+
     floor
     {
         type            compressible::kqRWallFunction;
diff --git a/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.org/mut b/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.org/mut
index cf8ccb9182cc90916c530ed3d8c726b5d1eb7d20..329027bb91ef622ea523c0511394a2ad917def0d 100644
--- a/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.org/mut
+++ b/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.org/mut
@@ -21,6 +21,9 @@ internalField   uniform 0;
 
 boundaryField
 {
+    //- Set patchGroups for constraint patches
+    #include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes"
+
     floor
     {
         type            mutkWallFunction;
diff --git a/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.org/p b/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.org/p
index 2d49a19495048c3636dbcd2ab9f36a016592a7cd..a18ef4e1807e504ba0c125a4e15b103d3e066972 100644
--- a/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.org/p
+++ b/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.org/p
@@ -21,6 +21,9 @@ internalField   uniform 101325;
 
 boundaryField
 {
+    //- Set patchGroups for constraint patches
+    #include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes"
+
     floor
     {
         type            calculated;
diff --git a/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.org/p_rgh b/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.org/p_rgh
index d4845488a8365bba29ef5a82f7e45cc319f2ea6c..ac641156fbcbecac521d981ec572a39424e05a99 100644
--- a/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.org/p_rgh
+++ b/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/0.org/p_rgh
@@ -21,6 +21,9 @@ internalField   uniform 101325;
 
 boundaryField
 {
+    //- Set patchGroups for constraint patches
+    #include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes"
+
     floor
     {
         type            fixedFluxPressure;
diff --git a/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/system/createBafflesDict b/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/system/createBafflesDict
index 2aed1e32a615e3405ccb0d355239984cfc0f1514..2bc58e0d700de664fa0f4498d7df3ce5e9f3817d 100644
--- a/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/system/createBafflesDict
+++ b/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/system/createBafflesDict
@@ -52,8 +52,9 @@ baffles
         {
             type            mappedWall;
             sampleMode      nearestPatchFace;
-            //Group master and slave in different groups. (default off)
-            groupBase       on;
+            // Put master and slave patch in same group (default on)
+            // Otherwise makeup group names xxx_master and xxx_slave
+            sameGroup       off;
             patchFields
             {
                 #include "./0/include/wallBafflePatches"
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/constant/polyMesh/boundary b/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/constant/polyMesh/boundary
index 40530a746d077ecc7a9cb45a277031110b068c62..578783eaeb9392c4f1d70bc4e50003807d0aeb7a 100644
--- a/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/constant/polyMesh/boundary
+++ b/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/constant/polyMesh/boundary
@@ -15,46 +15,441 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-6
+72
 (
-    front
+    frontAndBack
     {
         type            symmetryPlane;
         inGroups        1(symmetryPlane);
-        nFaces          160;
-        startFace       3456;
-    }
-    back
-    {
-        type            symmetryPlane;
-        inGroups        1(symmetryPlane);
-        nFaces          160;
-        startFace       3616;
+        nFaces          320;
+        startFace       9440280;
     }
     inlet
     {
         type            patch;
         nFaces          64;
-        startFace       3776;
+        startFace       9440600;
     }
     outlet
     {
         type            patch;
         nFaces          64;
-        startFace       3840;
+        startFace       9440664;
     }
     lowerWall
     {
         type            wall;
-        nFaces          160;
-        startFace       3904;
+        nFaces          15243;
+        startFace       9440728;
     }
     upperWall
     {
         type            symmetryPlane;
         inGroups        1(symmetryPlane);
         nFaces          160;
-        startFace       4064;
+        startFace       9455971;
+    }
+    motorBike_frt-fairing:001%1
+    {
+        type            wall;
+        nFaces          90875;
+        startFace       9456131;
+    }
+    motorBike_windshield:002%2
+    {
+        type            wall;
+        nFaces          376;
+        startFace       9547006;
+    }
+    motorBike_rr-wh-rim:005%5
+    {
+        type            wall;
+        nFaces          2402;
+        startFace       9547382;
+    }
+    motorBike_rr-wh-rim:010%10
+    {
+        type            wall;
+        nFaces          5288;
+        startFace       9549784;
+    }
+    motorBike_fr-wh-rim:011%11
+    {
+        type            wall;
+        nFaces          7215;
+        startFace       9555072;
+    }
+    motorBike_fr-wh-brake-disk:012%12
+    {
+        type            wall;
+        nFaces          973;
+        startFace       9562287;
+    }
+    motorBike_frame:016-shadow%13
+    {
+        type            wall;
+        nFaces          1718;
+        startFace       9563260;
+    }
+    motorBike_rear-susp:014%14
+    {
+        type            wall;
+        nFaces          14936;
+        startFace       9564978;
+    }
+    motorBike_rear-susp:014-shadow%15
+    {
+        type            wall;
+        nFaces          8564;
+        startFace       9579914;
+    }
+    motorBike_frame:016%16
+    {
+        type            wall;
+        nFaces          969;
+        startFace       9588478;
+    }
+    motorBike_rr-wh-rim:005-shadow%17
+    {
+        type            wall;
+        nFaces          1251;
+        startFace       9589447;
+    }
+    motorBike_rr-wh-chain-hub:022%22
+    {
+        type            wall;
+        nFaces          1827;
+        startFace       9590698;
+    }
+    motorBike_rearseat%24
+    {
+        type            wall;
+        nFaces          3241;
+        startFace       9592525;
+    }
+    motorBike_frt-fairing%25
+    {
+        type            wall;
+        nFaces          5078;
+        startFace       9595766;
+    }
+    motorBike_windshield%26
+    {
+        type            wall;
+        nFaces          6545;
+        startFace       9600844;
+    }
+    motorBike_headlights%27
+    {
+        type            wall;
+        nFaces          455;
+        startFace       9607389;
+    }
+    motorBike_driversseat%28
+    {
+        type            wall;
+        nFaces          5112;
+        startFace       9607844;
+    }
+    motorBike_rear-body%29
+    {
+        type            wall;
+        nFaces          12033;
+        startFace       9612956;
+    }
+    motorBike_fuel-tank%30
+    {
+        type            wall;
+        nFaces          6586;
+        startFace       9624989;
+    }
+    motorBike_exhaust%31
+    {
+        type            wall;
+        nFaces          20319;
+        startFace       9631575;
+    }
+    motorBike_rr-wh-rim%32
+    {
+        type            wall;
+        nFaces          9928;
+        startFace       9651894;
+    }
+    motorBike_fr-mud-guard%33
+    {
+        type            wall;
+        nFaces          13989;
+        startFace       9661822;
+    }
+    motorBike_fr-wh-rim%34
+    {
+        type            wall;
+        nFaces          6592;
+        startFace       9675811;
+    }
+    motorBike_fr-wh-brake-disk%35
+    {
+        type            wall;
+        nFaces          7374;
+        startFace       9682403;
+    }
+    motorBike_fr-brake-caliper%36
+    {
+        type            wall;
+        nFaces          2178;
+        startFace       9689777;
+    }
+    motorBike_fr-wh-tyre%37
+    {
+        type            wall;
+        nFaces          9947;
+        startFace       9691955;
+    }
+    motorBike_hbars%38
+    {
+        type            wall;
+        nFaces          7345;
+        startFace       9701902;
+    }
+    motorBike_fr-forks%39
+    {
+        type            wall;
+        nFaces          10349;
+        startFace       9709247;
+    }
+    motorBike_chain%40
+    {
+        type            wall;
+        nFaces          7168;
+        startFace       9719596;
+    }
+    motorBike_rr-wh-tyre%41
+    {
+        type            wall;
+        nFaces          7245;
+        startFace       9726764;
+    }
+    motorBike_square-dial%42
+    {
+        type            wall;
+        nFaces          62;
+        startFace       9734009;
+    }
+    motorBike_round-dial%43
+    {
+        type            wall;
+        nFaces          183;
+        startFace       9734071;
+    }
+    motorBike_dial-holder%44
+    {
+        type            wall;
+        nFaces          1336;
+        startFace       9734254;
+    }
+    motorBike_rear-susp%45
+    {
+        type            wall;
+        nFaces          25738;
+        startFace       9735590;
+    }
+    motorBike_rear-brake-lights%46
+    {
+        type            wall;
+        nFaces          860;
+        startFace       9761328;
+    }
+    motorBike_rear-light-bracket%47
+    {
+        type            wall;
+        nFaces          2003;
+        startFace       9762188;
+    }
+    motorBike_frame%48
+    {
+        type            wall;
+        nFaces          20232;
+        startFace       9764191;
+    }
+    motorBike_rear-mud-guard%49
+    {
+        type            wall;
+        nFaces          10690;
+        startFace       9784423;
+    }
+    motorBike_rear-susp-spring-damp%50
+    {
+        type            wall;
+        nFaces          1769;
+        startFace       9795113;
+    }
+    motorBike_fairing-inner-plate%51
+    {
+        type            wall;
+        nFaces          4660;
+        startFace       9796882;
+    }
+    motorBike_clutch-housing%52
+    {
+        type            wall;
+        nFaces          8237;
+        startFace       9801542;
+    }
+    motorBike_radiator%53
+    {
+        type            wall;
+        nFaces          1849;
+        startFace       9809779;
+    }
+    motorBike_water-pipe%54
+    {
+        type            wall;
+        nFaces          1182;
+        startFace       9811628;
+    }
+    motorBike_water-pump%55
+    {
+        type            wall;
+        nFaces          902;
+        startFace       9812810;
+    }
+    motorBike_engine%56
+    {
+        type            wall;
+        nFaces          19087;
+        startFace       9813712;
+    }
+    motorBike_rear-shock-link%57
+    {
+        type            wall;
+        nFaces          512;
+        startFace       9832799;
+    }
+    motorBike_rear-brake-fluid-pot-bracket%58
+    {
+        type            wall;
+        nFaces          721;
+        startFace       9833311;
+    }
+    motorBike_rear-brake-fluid-pot%59
+    {
+        type            wall;
+        nFaces          795;
+        startFace       9834032;
+    }
+    motorBike_footpeg%60
+    {
+        type            wall;
+        nFaces          1405;
+        startFace       9834827;
+    }
+    motorBike_rr-wh-chain-hub%61
+    {
+        type            wall;
+        nFaces          1984;
+        startFace       9836232;
+    }
+    motorBike_rear-brake-caliper%62
+    {
+        type            wall;
+        nFaces          2119;
+        startFace       9838216;
+    }
+    motorBike_rider-helmet%65
+    {
+        type            wall;
+        nFaces          2244;
+        startFace       9840335;
+    }
+    motorBike_rider-visor%66
+    {
+        type            wall;
+        nFaces          171;
+        startFace       9842579;
+    }
+    motorBike_rider-boots%67
+    {
+        type            wall;
+        nFaces          5287;
+        startFace       9842750;
+    }
+    motorBike_rider-gloves%68
+    {
+        type            wall;
+        nFaces          3129;
+        startFace       9848037;
+    }
+    motorBike_rider-body%69
+    {
+        type            wall;
+        nFaces          22909;
+        startFace       9851166;
+    }
+    motorBike_frame:0%70
+    {
+        type            wall;
+        nFaces          361;
+        startFace       9874075;
+    }
+    motorBike_frt-fairing:001-shadow%74
+    {
+        type            wall;
+        nFaces          56996;
+        startFace       9874436;
+    }
+    motorBike_windshield-shadow%75
+    {
+        type            wall;
+        nFaces          4535;
+        startFace       9931432;
+    }
+    motorBike_fr-mud-guard-shadow%81
+    {
+        type            wall;
+        nFaces          9174;
+        startFace       9935967;
+    }
+    motorBike_fr-wh-brake-disk-shadow%83
+    {
+        type            wall;
+        nFaces          3923;
+        startFace       9945141;
+    }
+    motorBike_rear-mud-guard-shadow%84
+    {
+        type            wall;
+        nFaces          6792;
+        startFace       9949064;
+    }
+    motorBike_rear-susp-spring-damp-shadow%85
+    {
+        type            wall;
+        nFaces          1211;
+        startFace       9955856;
+    }
+    motorBike_radiator-shadow%86
+    {
+        type            wall;
+        nFaces          1080;
+        startFace       9957067;
+    }
+    motorBike_rear-shock-link-shadow%87
+    {
+        type            wall;
+        nFaces          357;
+        startFace       9958147;
+    }
+    motorBike_rear-brake-fluid-pot-bracket-shadow%88
+    {
+        type            wall;
+        nFaces          420;
+        startFace       9958504;
+    }
+    motorBike_rr-wh-chain-hub-shadow%89
+    {
+        type            wall;
+        nFaces          1071;
+        startFace       9958924;
     }
 )
 
diff --git a/tutorials/mesh/foamyHexMesh/mixerVessel/Allrun b/tutorials/mesh/foamyHexMesh/mixerVessel/Allrun
index 3953f6c668caeb66b296d8e2e32dff470b6ae07f..99d75a9906847222fb3701cef5a25a476470e508 100755
--- a/tutorials/mesh/foamyHexMesh/mixerVessel/Allrun
+++ b/tutorials/mesh/foamyHexMesh/mixerVessel/Allrun
@@ -4,36 +4,10 @@ cd ${0%/*} || exit 1    # run from this directory
 # Source tutorial run functions
 . $WM_PROJECT_DIR/bin/tools/RunFunctions
 
-\cp system/controlDict.flow system/controlDict
-
-# Set application name
-application=$(getApplication)
-
-# Get number of processors to run on
-nProcs=$(getNumberOfProcessors)
-
-\rm -rf 0
-
-runApplication createBaffles -overwrite
-runApplication mergeOrSplitBaffles -split -overwrite
-
-# Get rid of zero faced patches
-runApplication createPatch -overwrite
-
-# Copy fields after meshing to avoind the generation of unnecessary patch fields
-\cp -r 0.org 0
-
-# Initialize alpha
-runApplication setFields
-
-# Decompose
-runApplication decomposePar -force
-
-# Run
-runParallel $application 8
-
-# Reconstruct
-runApplication reconstructPar -noFunctionObjects
+# Generate mesh
+./Allrun-pre
 
+## Run simulation
+#./Allrun-simulation
 
 # ----------------------------------------------------------------- end-of-file
diff --git a/tutorials/mesh/foamyHexMesh/mixerVessel/Allrun-simulation b/tutorials/mesh/foamyHexMesh/mixerVessel/Allrun-simulation
new file mode 100755
index 0000000000000000000000000000000000000000..e789caef9fdf7c456a2ce7e532f670f14d3b11ac
--- /dev/null
+++ b/tutorials/mesh/foamyHexMesh/mixerVessel/Allrun-simulation
@@ -0,0 +1,40 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # run from this directory
+
+# Source tutorial run functions
+. $WM_PROJECT_DIR/bin/tools/RunFunctions
+
+\cp system/controlDict.flow system/controlDict
+
+# Set application name
+application=$(getApplication)
+
+# Get number of processors to run on
+nProcs=$(getNumberOfProcessors)
+
+\rm -rf 0
+
+runApplication createBaffles -overwrite
+runApplication mergeOrSplitBaffles -split -overwrite
+
+# Get rid of zero faced patches
+runApplication createPatch -overwrite
+
+# Copy fields after meshing to avoind the generation of unnecessary patch fields
+\cp -r 0.org 0
+
+# Initialize alpha
+runApplication setFields
+
+# Decompose
+\rm log.decomposePar
+runApplication decomposePar -force
+
+# Run
+runParallel $application 8
+
+# Reconstruct
+runApplication reconstructPar -noFunctionObjects
+
+
+# ----------------------------------------------------------------- end-of-file
diff --git a/tutorials/mesh/foamyHexMesh/mixerVessel/system/fvSchemes b/tutorials/mesh/foamyHexMesh/mixerVessel/system/fvSchemes
index 84e4f5d57dfd09e85acab261c76262e00856e689..f9e967e83927afba644cdcac6a2fa5ab1fc481fa 100644
--- a/tutorials/mesh/foamyHexMesh/mixerVessel/system/fvSchemes
+++ b/tutorials/mesh/foamyHexMesh/mixerVessel/system/fvSchemes
@@ -37,8 +37,6 @@ divSchemes
     div(rhoPhi,K)  Gauss upwind;
     div(phi,k)  Gauss upwind;
     div(phi,epsilon) Gauss upwind;
-    div((muEff*dev2(T(grad(U))))) Gauss linear;
-
     div((muEff*dev(T(grad(U))))) Gauss linear;
 }
 
diff --git a/tutorials/mesh/foamyHexMesh/mixerVessel/system/fvSolution b/tutorials/mesh/foamyHexMesh/mixerVessel/system/fvSolution
index 946d84ed62c397cfed6200bf9829658cc634d622..6798f4b2e09f0c1d317590b3552bdb1a8e3b7468 100644
--- a/tutorials/mesh/foamyHexMesh/mixerVessel/system/fvSolution
+++ b/tutorials/mesh/foamyHexMesh/mixerVessel/system/fvSolution
@@ -51,6 +51,13 @@ solvers
         relTol          0;
     }
 
+    pcorrFinal
+    {
+        $pcorr;
+        tolerance       0.1;
+        relTol          0;
+    }
+
     ".*(rho|rhoFinal)"
     {
         solver          diagonal;
diff --git a/wmake/src/wmkdep.l b/wmake/src/wmkdep.l
index d9d4b73591b6cefda555095fa61f300946cfcec6..3b6973209b562be4e06b7d7aa6296baa5fa501b5 100644
--- a/wmake/src/wmkdep.l
+++ b/wmake/src/wmkdep.l
@@ -46,6 +46,7 @@ Usage
 #include <string.h>
 #include <sys/types.h>
 #include <dirent.h>
+#include <errno.h>
 
 void nextFile(const char* fileName);
 void importFile(const char* fileName);