diff --git a/applications/solvers/incompressible/pisoFoam/pisoFoam.C b/applications/solvers/incompressible/pisoFoam/pisoFoam.C
index 8491d37ff7489e7c0901bfc478442906c9588f12..01b349e9fa0ec0f75102e978d17cc6b169c7c162 100644
--- a/applications/solvers/incompressible/pisoFoam/pisoFoam.C
+++ b/applications/solvers/incompressible/pisoFoam/pisoFoam.C
@@ -100,7 +100,19 @@ int main(int argc, char *argv[])
                     );
 
                     pEqn.setReference(pRefCell, pRefValue);
-                    pEqn.solve();
+
+                    if
+                    (
+                        corr == nCorr-1
+                     && nonOrth == nNonOrthCorr
+                    )
+                    {
+                        pEqn.solve(mesh.solver("pFinal"));
+                    }
+                    else
+                    {
+                        pEqn.solve();
+                    }
 
                     if (nonOrth == nNonOrthCorr)
                     {
diff --git a/src/OpenFOAM/matrices/scalarMatrices/SVD/SVD.C b/src/OpenFOAM/matrices/scalarMatrices/SVD/SVD.C
index 13ef29ed9bed12c9a330b939f42e92bce1a9547f..23490b15479a1034510740c13afae639b2b8234a 100644
--- a/src/OpenFOAM/matrices/scalarMatrices/SVD/SVD.C
+++ b/src/OpenFOAM/matrices/scalarMatrices/SVD/SVD.C
@@ -308,7 +308,7 @@ Foam::SVD::SVD(const scalarRectangularMatrix& A, const scalar minCondition)
             g = rv1[nm];
             scalar h = rv1[k];
             scalar f = ((y - z)*(y + z) + (g - h)*(g + h))/(2.0*h*y);
-            g = sqrtSumSqr(f, 1.0);
+            g = sqrtSumSqr(f, scalar(1));
             f = ((x - z)*(x + z) + h*((y/(f + sign(g, f))) - h))/x;
             scalar c = 1.0;
             s = 1.0;
diff --git a/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/processor/processorPolyPatch.C b/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/processor/processorPolyPatch.C
index 15692da19a3d4d4ed26991cee9eca2055b993085..1e045e6d774bef9704cd65861836dd394535823d 100644
--- a/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/processor/processorPolyPatch.C
+++ b/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/processor/processorPolyPatch.C
@@ -143,7 +143,7 @@ void Foam::processorPolyPatch::initGeometry()
         (
             Pstream::blocking,
             neighbProcNo(),
-          + 3*(sizeof(label) + size()*sizeof(vector))
+            3*(sizeof(label) + size()*sizeof(vector) + sizeof(float))
         );
 
         toNeighbProc
@@ -163,7 +163,7 @@ void Foam::processorPolyPatch::calcGeometry()
             (
                 Pstream::blocking,
                 neighbProcNo(),
-                3*(sizeof(label) + size()*sizeof(vector))
+                3*(sizeof(label) + size()*sizeof(vector) + sizeof(float))
             );
             fromNeighbProc
                 >> neighbFaceCentres_
@@ -582,7 +582,7 @@ bool Foam::processorPolyPatch::order
                 transformedCtrs = masterCtrs-v[0];
             }
             else
-            {                    
+            {
                 transformedCtrs = masterCtrs-v;
             }
             matchedAll = matchPoints
@@ -605,7 +605,7 @@ bool Foam::processorPolyPatch::order
                     masterAnchors -= v[0];
                 }
                 else
-                {                    
+                {
                     masterAnchors -= v;
                 }
             }
diff --git a/src/OpenFOAM/primitives/uint/uintIO.C b/src/OpenFOAM/primitives/uint/uintIO.C
index 7b976aa96feb7f9e4289fd51d3689255ab4b8b59..deed3da7bae96cc8c14d0cba2d8676073fc76cd4 100644
--- a/src/OpenFOAM/primitives/uint/uintIO.C
+++ b/src/OpenFOAM/primitives/uint/uintIO.C
@@ -65,7 +65,7 @@ Istream& operator>>(Istream& is, unsigned int& i)
 
     if (t.isLabel())
     {
-        i = unsigned(t.labelToken());
+        i = static_cast<unsigned int>(t.labelToken());
     }
     else
     {
diff --git a/src/OpenFOAM/primitives/ulong/ulongIO.C b/src/OpenFOAM/primitives/ulong/ulongIO.C
index faad640bc206427de80ff3e482020034204d066c..e556b78d63e0d64b02dfc71684c2b78b65b01b56 100644
--- a/src/OpenFOAM/primitives/ulong/ulongIO.C
+++ b/src/OpenFOAM/primitives/ulong/ulongIO.C
@@ -44,7 +44,6 @@ namespace Foam
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-// Return a string representation of an ulong
 word name(const unsigned long i)
 {
     std::ostringstream osBuffer;
@@ -66,7 +65,7 @@ Istream& operator>>(Istream& is, unsigned long& i)
 
     if (t.isLabel())
     {
-        i = ulong(t.labelToken());
+        i = static_cast<unsigned long>(t.labelToken());
     }
     else
     {
diff --git a/src/turbulenceModels/incompressible/LES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.C b/src/turbulenceModels/incompressible/LES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.C
index b58c9557d44a8823dec6c674f0f223c3a037a379..6912872c9b7361c54e3cbc840ca3fa647688e897 100644
--- a/src/turbulenceModels/incompressible/LES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.C
+++ b/src/turbulenceModels/incompressible/LES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.C
@@ -119,12 +119,12 @@ void SpalartAllmarasIDDES::dTildaUpdate(const volScalarField& S)
         2.0*(pos(alpha)*pow(expTerm, -11.09) + neg(alpha)*pow(expTerm, -9.0));
 
 
-    volScalarField fStep = min(2.0*pow(expTerm, -9.0), 1.0);
+    volScalarField fStep = min(2.0*pow(expTerm, -9.0), scalar(1));
     volScalarField fHyb = max(1.0 - fd(S), fStep);
 
     volScalarField fAmp = 1.0 - max(ft(S), fl(S));
 
-    volScalarField fRestore = max(fHill - 1.0, 0.0)*fAmp;
+    volScalarField fRestore = max(fHill - 1.0, scalar(0))*fAmp;
 
     // volScalarField ft2 = IGNORING ft2 terms
 
@@ -132,7 +132,7 @@ void SpalartAllmarasIDDES::dTildaUpdate(const volScalarField& S)
     (
         min
         (
-            100.0,
+            scalar(100),
             (1.0 - Cb1_/(Cw1_*sqr(kappa_)*fwStar_)*fv2())/max(SMALL, fv1())
         )
     );
diff --git a/src/turbulenceModels/incompressible/LES/derivedFvPatchFields/wallFunctions/nuSgsWallFunctions/nuSgsSpalartAllmarasWallFunction/nuSgsSpalartAllmarasWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/LES/derivedFvPatchFields/wallFunctions/nuSgsWallFunctions/nuSgsSpalartAllmarasWallFunction/nuSgsSpalartAllmarasWallFunctionFvPatchScalarField.C
index 880209e7f625064e4b7c0b43574548df24263aad..f42afb995dcbf9aecf7afd08b9250a0ee9c9917b 100644
--- a/src/turbulenceModels/incompressible/LES/derivedFvPatchFields/wallFunctions/nuSgsWallFunctions/nuSgsSpalartAllmarasWallFunction/nuSgsSpalartAllmarasWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/incompressible/LES/derivedFvPatchFields/wallFunctions/nuSgsWallFunctions/nuSgsSpalartAllmarasWallFunction/nuSgsSpalartAllmarasWallFunctionFvPatchScalarField.C
@@ -139,7 +139,7 @@ void nuSgsSpalartAllmarasWallFunctionFvPatchScalarField::evaluate
 
             do
             {
-                scalar kUu = min(kappa*magUpara/utau, 100);
+                scalar kUu = min(kappa*magUpara/utau, 50);
                 scalar fkUu = exp(kUu) - 1 - kUu*(1 + 0.5*kUu);
 
                 scalar f =