diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/turbulentFluidThermoModels.C b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/turbulentFluidThermoModels.C
index ae6604679c3e50f00545e623a11365ffd932e43f..d7b420f854cb45119f91b9e6994f18812a145e64 100644
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/turbulentFluidThermoModels.C
+++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/turbulentFluidThermoModels.C
@@ -82,6 +82,9 @@ makeRASModel(kOmega);
 #include "kOmegaSST.H"
 makeRASModel(kOmegaSST);
 
+#include "kOmegaSSTSAS.H"
+makeRASModel(kOmegaSSTSAS);
+
 #include "v2f.H"
 makeRASModel(v2f);
 
diff --git a/src/TurbulenceModels/incompressible/turbulentTransportModels/turbulentTransportModels.C b/src/TurbulenceModels/incompressible/turbulentTransportModels/turbulentTransportModels.C
index 521ae9d4dd1632b3e5e1214f879664e1d6024126..1a3dc38620ba382c81b1f38a4541d59321077e75 100644
--- a/src/TurbulenceModels/incompressible/turbulentTransportModels/turbulentTransportModels.C
+++ b/src/TurbulenceModels/incompressible/turbulentTransportModels/turbulentTransportModels.C
@@ -77,6 +77,9 @@ makeRASModel(kOmega);
 #include "kOmegaSST.H"
 makeRASModel(kOmegaSST);
 
+#include "kOmegaSSTSAS.H"
+makeRASModel(kOmegaSSTSAS);
+
 #include "v2f.H"
 makeRASModel(v2f);
 
diff --git a/src/TurbulenceModels/turbulenceModels/RAS/kOmegaSST/kOmegaSST.C b/src/TurbulenceModels/turbulenceModels/RAS/kOmegaSST/kOmegaSST.C
index e6a020c6f9657397ca13730dc8de1f546feb6859..76fd9cf0c3583b4613cc06fa5a5db647280ea226 100644
--- a/src/TurbulenceModels/turbulenceModels/RAS/kOmegaSST/kOmegaSST.C
+++ b/src/TurbulenceModels/turbulenceModels/RAS/kOmegaSST/kOmegaSST.C
@@ -154,6 +154,25 @@ tmp<fvScalarMatrix> kOmegaSST<BasicTurbulenceModel>::omegaSource() const
 }
 
 
+template<class BasicTurbulenceModel>
+tmp<fvScalarMatrix> kOmegaSST<BasicTurbulenceModel>::Qsas
+(
+    const volScalarField& S2,
+    const volScalarField& gamma,
+    const volScalarField& beta
+) const
+{
+    return tmp<fvScalarMatrix>
+    (
+        new fvScalarMatrix
+        (
+            omega_,
+            dimVolume*this->rho_.dimensions()*omega_.dimensions()/dimTime
+        )
+    );
+}
+
+
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
 template<class BasicTurbulenceModel>
@@ -401,37 +420,42 @@ void kOmegaSST<BasicTurbulenceModel>::correct()
     );
 
     volScalarField F1(this->F1(CDkOmega));
-    volScalarField rhoGammaF1(rho*gamma(F1));
 
-    // Turbulent frequency equation
-    tmp<fvScalarMatrix> omegaEqn
-    (
-        fvm::ddt(alpha, rho, omega_)
-      + fvm::div(alphaRhoPhi, omega_)
-      - fvm::laplacian(alpha*rho*DomegaEff(F1), omega_)
-     ==
-        alpha*rhoGammaF1
-       *min
-        (
-            GbyNu,
-            (c1_/a1_)*betaStar_*omega_*max(a1_*omega_, b1_*F23()*sqrt(S2))
-        )
-      - fvm::SuSp((2.0/3.0)*alpha*rhoGammaF1*divU, omega_)
-      - fvm::Sp(alpha*rho*beta(F1)*omega_, omega_)
-      - fvm::SuSp
+    {
+        volScalarField gamma(this->gamma(F1));
+        volScalarField beta(this->beta(F1));
+
+        // Turbulent frequency equation
+        tmp<fvScalarMatrix> omegaEqn
         (
-            alpha*rho*(F1 - scalar(1))*CDkOmega/omega_,
-            omega_
-        )
-      + omegaSource()
-    );
+            fvm::ddt(alpha, rho, omega_)
+          + fvm::div(alphaRhoPhi, omega_)
+          - fvm::laplacian(alpha*rho*DomegaEff(F1), omega_)
+         ==
+            alpha*rho*gamma
+           *min
+            (
+                GbyNu,
+                (c1_/a1_)*betaStar_*omega_*max(a1_*omega_, b1_*F23()*sqrt(S2))
+            )
+          - fvm::SuSp((2.0/3.0)*alpha*rho*gamma*divU, omega_)
+          - fvm::Sp(alpha*rho*beta*omega_, omega_)
+          - fvm::SuSp
+            (
+                alpha*rho*(F1 - scalar(1))*CDkOmega/omega_,
+                omega_
+            )
+          + Qsas(S2, gamma, beta)
+          + omegaSource()
+        );
 
-    omegaEqn().relax();
+        omegaEqn().relax();
 
-    omegaEqn().boundaryManipulate(omega_.boundaryField());
+        omegaEqn().boundaryManipulate(omega_.boundaryField());
 
-    solve(omegaEqn);
-    bound(omega_, this->omegaMin_);
+        solve(omegaEqn);
+        bound(omega_, this->omegaMin_);
+    }
 
     // Turbulent kinetic energy equation
     tmp<fvScalarMatrix> kEqn
diff --git a/src/TurbulenceModels/turbulenceModels/RAS/kOmegaSST/kOmegaSST.H b/src/TurbulenceModels/turbulenceModels/RAS/kOmegaSST/kOmegaSST.H
index b711d496869709b31d6d8b86344e58daf3c6c72f..e3a3fcd3327468270110e23200f0208e7ca1f595 100644
--- a/src/TurbulenceModels/turbulenceModels/RAS/kOmegaSST/kOmegaSST.H
+++ b/src/TurbulenceModels/turbulenceModels/RAS/kOmegaSST/kOmegaSST.H
@@ -214,6 +214,12 @@ protected:
         virtual void correctNut();
         virtual tmp<fvScalarMatrix> kSource() const;
         virtual tmp<fvScalarMatrix> omegaSource() const;
+        virtual tmp<fvScalarMatrix> Qsas
+        (
+            const volScalarField& S2,
+            const volScalarField& gamma,
+            const volScalarField& beta
+        ) const;
 
 
 public:
diff --git a/src/TurbulenceModels/turbulenceModels/RAS/kOmegaSSTSAS/kOmegaSSTSAS.C b/src/TurbulenceModels/turbulenceModels/RAS/kOmegaSSTSAS/kOmegaSSTSAS.C
new file mode 100644
index 0000000000000000000000000000000000000000..08b3b5af432119200b5061cea684f1db6d42a7fc
--- /dev/null
+++ b/src/TurbulenceModels/turbulenceModels/RAS/kOmegaSSTSAS/kOmegaSSTSAS.C
@@ -0,0 +1,204 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2015 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "kOmegaSSTSAS.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace RASModels
+{
+
+// * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * * //
+
+template<class BasicTurbulenceModel>
+tmp<fvScalarMatrix> kOmegaSSTSAS<BasicTurbulenceModel>::Qsas
+(
+    const volScalarField& S2,
+    const volScalarField& gamma,
+    const volScalarField& beta
+) const
+{
+    volScalarField L
+    (
+        sqrt(this->k_)/(pow025(this->betaStar_)*this->omega_)
+    );
+
+    volScalarField Lvk
+    (
+        max
+        (
+            kappa_*sqrt(S2)
+           /(
+                mag(fvc::laplacian(this->U_))
+              + dimensionedScalar
+                (
+                    "ROOTVSMALL",
+                    dimensionSet(0, -1, -1, 0, 0),
+                    ROOTVSMALL
+                )
+            ),
+            Cs_*sqrt(kappa_*zeta2_/(beta/this->betaStar_ - gamma))*delta()
+        )
+    );
+
+    return fvm::Su
+    (
+        this->alpha_*this->rho_
+       *min
+        (
+            max
+            (
+                zeta2_*kappa_*S2*sqr(L/Lvk)
+              - (2*C_/sigmaPhi_)*this->k_
+               *max
+                (
+                    magSqr(fvc::grad(this->omega_))/sqr(this->omega_),
+                    magSqr(fvc::grad(this->k_))/sqr(this->k_)
+                ),
+                dimensionedScalar("0", dimensionSet(0, 0, -2, 0, 0), 0)
+            ),
+            // Limit SAS production of omega for numerical stability,
+            // particularly during start-up
+            this->omega_/(0.1*this->omega_.time().deltaT())
+        ),
+        this->omega_
+    );
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+template<class BasicTurbulenceModel>
+kOmegaSSTSAS<BasicTurbulenceModel>::kOmegaSSTSAS
+(
+    const alphaField& alpha,
+    const rhoField& rho,
+    const volVectorField& U,
+    const surfaceScalarField& alphaRhoPhi,
+    const surfaceScalarField& phi,
+    const transportModel& transport,
+    const word& propertiesName,
+    const word& type
+)
+:
+    kOmegaSST<BasicTurbulenceModel>
+    (
+        alpha,
+        rho,
+        U,
+        alphaRhoPhi,
+        phi,
+        transport,
+        propertiesName
+    ),
+
+    Cs_
+    (
+        dimensioned<scalar>::lookupOrAddToDict
+        (
+            "Cs",
+            this->coeffDict_,
+            0.11
+        )
+    ),
+    kappa_
+    (
+        dimensioned<scalar>::lookupOrAddToDict
+        (
+            "kappa",
+            this->coeffDict_,
+            0.41
+        )
+    ),
+    zeta2_
+    (
+        dimensioned<scalar>::lookupOrAddToDict
+        (
+            "zeta2",
+            this->coeffDict_,
+            3.51
+        )
+    ),
+    sigmaPhi_
+    (
+        dimensioned<scalar>::lookupOrAddToDict
+        (
+            "sigmaPhi",
+            this->coeffDict_,
+            2.0/3.0
+        )
+    ),
+    C_
+    (
+        dimensioned<scalar>::lookupOrAddToDict
+        (
+            "C",
+            this->coeffDict_,
+            2
+        )
+    ),
+
+    delta_
+    (
+        LESdelta::New
+        (
+            IOobject::groupName("delta", U.group()),
+            *this,
+            this->coeffDict_
+        )
+    )
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+template<class BasicTurbulenceModel>
+bool kOmegaSSTSAS<BasicTurbulenceModel>::read()
+{
+    if (kOmegaSST<BasicTurbulenceModel>::read())
+    {
+        Cs_.readIfPresent(this->coeffDict());
+        kappa_.readIfPresent(this->coeffDict());
+        sigmaPhi_.readIfPresent(this->coeffDict());
+        zeta2_.readIfPresent(this->coeffDict());
+        C_.readIfPresent(this->coeffDict());
+
+        return true;
+    }
+    else
+    {
+        return false;
+    }
+}
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace RASModels
+} // End namespace Foam
+
+// ************************************************************************* //
diff --git a/src/TurbulenceModels/turbulenceModels/RAS/kOmegaSSTSAS/kOmegaSSTSAS.H b/src/TurbulenceModels/turbulenceModels/RAS/kOmegaSSTSAS/kOmegaSSTSAS.H
new file mode 100644
index 0000000000000000000000000000000000000000..45588790ed0ad8306c89bb4af0c2c5c78e8a1a76
--- /dev/null
+++ b/src/TurbulenceModels/turbulenceModels/RAS/kOmegaSSTSAS/kOmegaSSTSAS.H
@@ -0,0 +1,200 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2015 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+Class
+    Foam::RASModels::kOmegaSSTSAS
+
+Group
+    grpLESTurbulence
+
+Description
+    Scale-adaptive URAS model based on the k-omega-SST RAS model.
+
+    References:
+    \verbatim
+        Egorov, Y., & Menter F.R. (2008).
+        Development and Application of SST-SAS Model in the DESIDER Project.
+        Advances in Hybrid RANS-LES Modelling,
+        Notes on Num. Fluid Mech. And Multidisciplinary Design,
+        Volume 97, 261-270.
+    \endverbatim
+
+    The model coefficients are
+    \verbatim
+        kOmegaSSTSASCoeffs
+        {
+            // Default SST coefficients
+            alphaK1     0.85;
+            alphaK2     1.0;
+            alphaOmega1 0.5;
+            alphaOmega2 0.856;
+            beta1       0.075;
+            beta2       0.0828;
+            betaStar    0.09;
+            gamma1      5/9;
+            gamma2      0.44;
+            a1          0.31;
+            b1          1.0;
+            c1          10.0;
+            F3          no;
+
+            // Default SAS coefficients
+            Cs          0.11;
+            kappa       0.41;
+            zeta2       3.51;
+            sigmaPhi    2.0/3.0;
+            C           2;
+
+            // Delta must be specified for SAS e.g.
+            delta cubeRootVol;
+
+            cubeRootVolCoeffs
+            {}
+        }
+    \endverbatim
+
+SourceFiles
+    kOmegaSSTSAS.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef kOmegaSSTSAS_H
+#define kOmegaSSTSAS_H
+
+#include "kOmegaSST.H"
+#include "LESdelta.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace RASModels
+{
+
+/*---------------------------------------------------------------------------*\
+                     Class kOmegaSSTSAS Declaration
+\*---------------------------------------------------------------------------*/
+
+template<class BasicTurbulenceModel>
+class kOmegaSSTSAS
+:
+    public kOmegaSST<BasicTurbulenceModel>
+{
+    // Private Member Functions
+
+        // Disallow default bitwise copy construct and assignment
+        kOmegaSSTSAS(const kOmegaSSTSAS&);
+        kOmegaSSTSAS& operator=(const kOmegaSSTSAS&);
+
+
+protected:
+
+    // Protected data
+
+        // Model constants
+
+            dimensionedScalar Cs_;
+            dimensionedScalar kappa_;
+            dimensionedScalar zeta2_;
+            dimensionedScalar sigmaPhi_;
+            dimensionedScalar C_;
+
+
+        // Fields
+
+            //- Run-time selectable delta model
+            autoPtr<Foam::LESdelta> delta_;
+
+
+    // Protected Member Functions
+
+        //- SAS omega source
+        virtual tmp<fvScalarMatrix> Qsas
+        (
+            const volScalarField& S2,
+            const volScalarField& gamma,
+            const volScalarField& beta
+        ) const;
+
+
+public:
+
+    typedef typename BasicTurbulenceModel::alphaField alphaField;
+    typedef typename BasicTurbulenceModel::rhoField rhoField;
+    typedef typename BasicTurbulenceModel::transportModel transportModel;
+
+
+    //- Runtime type information
+    TypeName("kOmegaSSTSAS");
+
+
+    // Constructors
+
+        //- Construct from components
+        kOmegaSSTSAS
+        (
+            const alphaField& alpha,
+            const rhoField& rho,
+            const volVectorField& U,
+            const surfaceScalarField& alphaRhoPhi,
+            const surfaceScalarField& phi,
+            const transportModel& transport,
+            const word& propertiesName = turbulenceModel::propertiesName,
+            const word& type = typeName
+        );
+
+
+    //- Destructor
+    virtual ~kOmegaSSTSAS()
+    {}
+
+
+    // Member Functions
+
+        //- Re-read model coefficients if they have changed
+        virtual bool read();
+
+        //- Access function to filter width
+        inline const volScalarField& delta() const
+        {
+            return delta_();
+        }
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace RASModels
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#ifdef NoRepository
+#   include "kOmegaSSTSAS.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //