diff --git a/src/turbulenceModels/compressible/RAS/LaunderSharmaKE/LaunderSharmaKE.C b/src/turbulenceModels/compressible/RAS/LaunderSharmaKE/LaunderSharmaKE.C
index 1db5bdb72e4342768dd27d513a04b2094f3c5bfc..b742b14d20bb955a41bc52dee8a02a3ae288c38e 100644
--- a/src/turbulenceModels/compressible/RAS/LaunderSharmaKE/LaunderSharmaKE.C
+++ b/src/turbulenceModels/compressible/RAS/LaunderSharmaKE/LaunderSharmaKE.C
@@ -26,7 +26,8 @@ License
 
 #include "LaunderSharmaKE.H"
 #include "addToRunTimeSelectionTable.H"
-#include "wallFvPatch.H"
+
+#include "backwardsCompatibilityWallFunctions.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -141,10 +142,10 @@ LaunderSharmaKE::LaunderSharmaKE
             "k",
             runTime_.timeName(),
             mesh_,
-            IOobject::MUST_READ,
+            IOobject::NO_READ,
             IOobject::AUTO_WRITE
         ),
-        mesh_
+        autoCreateK("k", mesh_)
     ),
 
     epsilon_
@@ -154,10 +155,10 @@ LaunderSharmaKE::LaunderSharmaKE
             "epsilon",
             runTime_.timeName(),
             mesh_,
-            IOobject::MUST_READ,
+            IOobject::NO_READ,
             IOobject::AUTO_WRITE
         ),
-        mesh_
+        autoCreateEpsilon("epsilon", mesh_)
     ),
 
     mut_
@@ -170,9 +171,28 @@ LaunderSharmaKE::LaunderSharmaKE
             IOobject::NO_READ,
             IOobject::NO_WRITE
         ),
-        Cmu_*fMu()*rho_*sqr(k_)/(epsilon_ + epsilonSmall_)
+        autoCreateMut("mut", mesh_)
+    ),
+
+    alphat_
+    (
+        IOobject
+        (
+            "alphat",
+            runTime_.timeName(),
+            mesh_,
+            IOobject::NO_READ,
+            IOobject::AUTO_WRITE
+        ),
+        autoCreateAlphat("alphat", mesh_)
     )
 {
+    mut_ = rho_*Cmu_*fMu()*sqr(k_)/(epsilon_ + epsilonSmall_);
+    mut_.correctBoundaryConditions();
+
+    alphat_ = mut_/Prt_;
+    alphat_.correctBoundaryConditions();
+
     printCoeffs();
 }
 
@@ -256,6 +276,12 @@ void LaunderSharmaKE::correct()
     {
         // Re-calculate viscosity
         mut_ = rho_*Cmu_*fMu()*sqr(k_)/(epsilon_ + epsilonSmall_);
+        mut_.correctBoundaryConditions();
+
+        // Re-calculate thermal diffusivity
+        alphat_ = mut_/Prt_;
+        alphat_.correctBoundaryConditions();
+
         return;
     }
 
@@ -275,9 +301,11 @@ void LaunderSharmaKE::correct()
     }
 
     tmp<volTensorField> tgradU = fvc::grad(U_);
-    volScalarField G = mut_*(tgradU() && dev(twoSymm(tgradU())));
+    volScalarField G("RASModel::G", mut_*(tgradU() && dev(twoSymm(tgradU()))));
     tgradU.clear();
 
+    // Update espsilon and G at the wall
+    epsilon_.boundaryField().updateCoeffs();
 
     // Dissipation equation
 
@@ -294,6 +322,9 @@ void LaunderSharmaKE::correct()
     );
 
     epsEqn().relax();
+
+    epsEqn().boundaryManipulate(epsilon_.boundaryField());
+
     solve(epsEqn);
     bound(epsilon_, epsilon0_);
 
@@ -317,7 +348,12 @@ void LaunderSharmaKE::correct()
 
 
     // Re-calculate viscosity
-    mut_ = Cmu_*fMu()*rho_*sqr(k_)/epsilon_;
+    mut_ = Cmu_*fMu()*rho_*sqr(k_)/(epsilon_ + epsilonSmall_);
+    mut_.correctBoundaryConditions();
+
+    // Re-calculate thermal diffusivity
+    alphat_ = mut_/Prt_;
+    alphat_.correctBoundaryConditions();
 }
 
 
diff --git a/src/turbulenceModels/compressible/RAS/LaunderSharmaKE/LaunderSharmaKE.H b/src/turbulenceModels/compressible/RAS/LaunderSharmaKE/LaunderSharmaKE.H
index 28cee3928bc922da7745469d26b1e3f295634338..b912ae539b56c2825279972946ace62a480f6aa6 100644
--- a/src/turbulenceModels/compressible/RAS/LaunderSharmaKE/LaunderSharmaKE.H
+++ b/src/turbulenceModels/compressible/RAS/LaunderSharmaKE/LaunderSharmaKE.H
@@ -64,7 +64,7 @@ namespace RASModels
 {
 
 /*---------------------------------------------------------------------------*\
-                           Class LaunderSharmaKE Declaration
+                        Class LaunderSharmaKE Declaration
 \*---------------------------------------------------------------------------*/
 
 class LaunderSharmaKE
@@ -73,17 +73,23 @@ class LaunderSharmaKE
 {
     // Private data
 
-        dimensionedScalar Cmu_;
-        dimensionedScalar C1_;
-        dimensionedScalar C2_;
-        dimensionedScalar C3_;
-        dimensionedScalar alphak_;
-        dimensionedScalar alphaEps_;
-        dimensionedScalar alphah_;
+        // Model coefficients
 
-        volScalarField k_;
-        volScalarField epsilon_;
-        volScalarField mut_;
+            dimensionedScalar Cmu_;
+            dimensionedScalar C1_;
+            dimensionedScalar C2_;
+            dimensionedScalar C3_;
+            dimensionedScalar alphak_;
+            dimensionedScalar alphaEps_;
+            dimensionedScalar alphah_;
+
+
+        // Fields
+
+            volScalarField k_;
+            volScalarField epsilon_;
+            volScalarField mut_;
+            volScalarField alphat_;
 
 
     // Private member functions
@@ -145,7 +151,7 @@ public:
         {
             return tmp<volScalarField>
             (
-                new volScalarField("alphaEff", alphah_*mut_ + alpha())
+                new volScalarField("alphaEff", alphah_*alphat_ + alpha())
             );
         }
 
diff --git a/src/turbulenceModels/compressible/RAS/SpalartAllmaras/SpalartAllmaras.C b/src/turbulenceModels/compressible/RAS/SpalartAllmaras/SpalartAllmaras.C
index 4825c6464ae450e3e558e5e092e2337950bde578..4daef2dd8e1084d7dfed62339a4d61d15151f5fb 100644
--- a/src/turbulenceModels/compressible/RAS/SpalartAllmaras/SpalartAllmaras.C
+++ b/src/turbulenceModels/compressible/RAS/SpalartAllmaras/SpalartAllmaras.C
@@ -26,7 +26,8 @@ License
 
 #include "SpalartAllmaras.H"
 #include "addToRunTimeSelectionTable.H"
-#include "wallDist.H"
+
+#include "backwardsCompatibilityWallFunctions.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -215,8 +216,24 @@ SpalartAllmaras::SpalartAllmaras
         mesh_
     ),
 
+    alphat_
+    (
+        IOobject
+        (
+            "alphat",
+            runTime_.timeName(),
+            mesh_,
+            IOobject::NO_READ,
+            IOobject::AUTO_WRITE
+        ),
+        autoCreateAlphat("alphat", mesh_)
+    ),
+
     d_(mesh_)
 {
+    alphat_ = mut_/Prt_;
+    alphat_.correctBoundaryConditions();
+
     printCoeffs();
 }
 
@@ -305,6 +322,12 @@ void SpalartAllmaras::correct()
     {
         // Re-calculate viscosity
         mut_ = rho_*nuTilda_*fv1(chi());
+        mut_.correctBoundaryConditions();
+
+        // Re-calculate thermal diffusivity
+        alphat_ = mut_/Prt_;
+        alphat_.correctBoundaryConditions();
+
         return;
     }
 
@@ -338,8 +361,13 @@ void SpalartAllmaras::correct()
     bound(nuTilda_, dimensionedScalar("0", nuTilda_.dimensions(), 0.0));
     nuTilda_.correctBoundaryConditions();
 
+    // Re-calculate viscosity
     mut_.internalField() = fv1*nuTilda_.internalField()*rho_.internalField();
     mut_.correctBoundaryConditions();
+
+    // Re-calculate thermal diffusivity
+    alphat_ = mut_/Prt_;
+    alphat_.correctBoundaryConditions();
 }
 
 
diff --git a/src/turbulenceModels/compressible/RAS/SpalartAllmaras/SpalartAllmaras.H b/src/turbulenceModels/compressible/RAS/SpalartAllmaras/SpalartAllmaras.H
index 5a75616347ff2fbd81d9117d77ecd133dfd57f4e..7b96627f8e7d52affd944fbadb56dba041545c51 100644
--- a/src/turbulenceModels/compressible/RAS/SpalartAllmaras/SpalartAllmaras.H
+++ b/src/turbulenceModels/compressible/RAS/SpalartAllmaras/SpalartAllmaras.H
@@ -81,7 +81,7 @@ namespace RASModels
 {
 
 /*---------------------------------------------------------------------------*\
-                           Class SpalartAllmaras Declaration
+                      Class SpalartAllmaras Declaration
 \*---------------------------------------------------------------------------*/
 
 class SpalartAllmaras
@@ -90,20 +90,27 @@ class SpalartAllmaras
 {
     // Private data
 
-        dimensionedScalar alphaNut_;
-        dimensionedScalar alphah_;
+        // Model coefficients
+            dimensionedScalar alphaNut_;
+            dimensionedScalar alphah_;
 
-        dimensionedScalar Cb1_;
-        dimensionedScalar Cb2_;
-        dimensionedScalar Cw1_;
-        dimensionedScalar Cw2_;
-        dimensionedScalar Cw3_;
-        dimensionedScalar Cv1_;
-        dimensionedScalar Cv2_;
+            dimensionedScalar Cb1_;
+            dimensionedScalar Cb2_;
+            dimensionedScalar Cw1_;
+            dimensionedScalar Cw2_;
+            dimensionedScalar Cw3_;
+            dimensionedScalar Cv1_;
+            dimensionedScalar Cv2_;
 
-        volScalarField nuTilda_;
-        volScalarField mut_;
 
+        // Fields
+
+            volScalarField nuTilda_;
+            volScalarField mut_;
+            volScalarField alphat_;
+
+
+        //- Wall distance
         wallDist d_;
 
 
@@ -173,7 +180,7 @@ public:
         {
             return tmp<volScalarField>
             (
-                new volScalarField("alphaEff", alphah_*mut_ + alpha())
+                new volScalarField("alphaEff", alphah_*alphat_ + alpha())
             );
         }
 
diff --git a/src/turbulenceModels/incompressible/RAS/LamBremhorstKE/LamBremhorstKE.C b/src/turbulenceModels/incompressible/RAS/LamBremhorstKE/LamBremhorstKE.C
index 92c72770a8625f0f38dde715d5655408b6499e5a..8eb230792f5087e2a02014537963a79f3cbc6969 100644
--- a/src/turbulenceModels/incompressible/RAS/LamBremhorstKE/LamBremhorstKE.C
+++ b/src/turbulenceModels/incompressible/RAS/LamBremhorstKE/LamBremhorstKE.C
@@ -27,6 +27,8 @@ License
 #include "LamBremhorstKE.H"
 #include "addToRunTimeSelectionTable.H"
 
+#include "backwardsCompatibilityWallFunctions.H"
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 namespace Foam
@@ -112,7 +114,7 @@ LamBremhorstKE::LamBremhorstKE
             IOobject::MUST_READ,
             IOobject::AUTO_WRITE
         ),
-        mesh_
+        autoCreateEpsilon("epsilon", mesh_)
     ),
 
     y_(mesh_),
@@ -125,8 +127,22 @@ LamBremhorstKE::LamBremhorstKE
        *(scalar(1) + 20.5/(Rt_ + SMALL))
     ),
 
-    nut_(Cmu_*fMu_*sqr(k_)/(epsilon_ + epsilonSmall_))
+    nut_
+    (
+        IOobject
+        (
+            "nut",
+            runTime_.timeName(),
+            mesh_,
+            IOobject::NO_READ,
+            IOobject::AUTO_WRITE
+        ),
+        autoCreateNut("nut", mesh_)
+    )
 {
+    nut_ = Cmu_*fMu_*sqr(k_)/(epsilon_ + epsilonSmall_);
+    nut_.correctBoundaryConditions();
+
     printCoeffs();
 }
 
@@ -216,7 +232,7 @@ void LamBremhorstKE::correct()
         y_.correct();
     }
 
-    volScalarField G = nut_*2*magSqr(symm(fvc::grad(U_)));
+    volScalarField G("RASModel::G", nut_*2*magSqr(symm(fvc::grad(U_))));
 
     // Calculate parameters and coefficients for low-Reynolds number model
 
@@ -229,6 +245,8 @@ void LamBremhorstKE::correct()
     volScalarField f1 = scalar(1) + pow(0.05/(fMu_ + SMALL), 3);
     volScalarField f2 = scalar(1) - exp(-sqr(Rt_));
 
+    // Update espsilon and G at the wall
+    epsilon_.boundaryField().updateCoeffs();
 
     // Dissipation equation
 
@@ -243,6 +261,9 @@ void LamBremhorstKE::correct()
     );
 
     epsEqn().relax();
+
+    epsEqn().boundaryManipulate(epsilon_.boundaryField());
+
     solve(epsEqn);
     bound(epsilon_, epsilon0_);
 
@@ -265,6 +286,7 @@ void LamBremhorstKE::correct()
 
     // Re-calculate viscosity
     nut_ = Cmu_*fMu_*sqr(k_)/epsilon_;
+    nut_.correctBoundaryConditions();
 }