diff --git a/applications/solvers/heatTransfer/solidFoam/Make/files b/applications/solvers/heatTransfer/solidFoam/Make/files
index 5e2a2eeaf0db485ea80226a75ee7674ab13edae3..1d73069718cf40ddb9ac1157b383b161ec3b5dc2 100644
--- a/applications/solvers/heatTransfer/solidFoam/Make/files
+++ b/applications/solvers/heatTransfer/solidFoam/Make/files
@@ -1,3 +1,4 @@
+solidRegionDiffNo.C
 solidFoam.C
 
 EXE = $(FOAM_APPBIN)/solidFoam
diff --git a/applications/solvers/heatTransfer/solidFoam/Make/options b/applications/solvers/heatTransfer/solidFoam/Make/options
index 5236743418f12889c30271484946c58270d83f32..ab6d205602b9f48cc2d24ffa5bda5b7101167801 100644
--- a/applications/solvers/heatTransfer/solidFoam/Make/options
+++ b/applications/solvers/heatTransfer/solidFoam/Make/options
@@ -1,4 +1,6 @@
 EXE_INC = \
+    -I../chtMultiRegionFoam/include \
+    -I../chtMultiRegionFoam/solid \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/dynamicMesh/lnInclude \
diff --git a/applications/solvers/heatTransfer/solidFoam/dummyCourantNo.H b/applications/solvers/heatTransfer/solidFoam/dummyCourantNo.H
new file mode 100644
index 0000000000000000000000000000000000000000..af0ee9af056a48e19269df60a1c6e498d125f72d
--- /dev/null
+++ b/applications/solvers/heatTransfer/solidFoam/dummyCourantNo.H
@@ -0,0 +1,36 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | www.openfoam.com
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+    Copyright (C) 2022 OpenCFD Ltd.
+-------------------------------------------------------------------------------
+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/>.
+
+Global
+    CourantNo
+
+Description
+    Dummy (fluid) Courant number.
+
+\*---------------------------------------------------------------------------*/
+
+scalar CoNum = 0.0;
+
+// ************************************************************************* //
diff --git a/applications/solvers/heatTransfer/solidFoam/solidDiffusionNo.H b/applications/solvers/heatTransfer/solidFoam/solidDiffusionNo.H
new file mode 100644
index 0000000000000000000000000000000000000000..90317f67c612fe56779a24b3a858362b377d78a3
--- /dev/null
+++ b/applications/solvers/heatTransfer/solidFoam/solidDiffusionNo.H
@@ -0,0 +1,31 @@
+scalar DiNum = -GREAT;
+
+{
+    tmp<volScalarField> magKappa;
+    if (thermo.isotropic())
+    {
+        magKappa = thermo.kappa();
+    }
+    else
+    {
+        magKappa = mag(thermo.Kappa());
+    }
+
+    tmp<volScalarField> tcp = thermo.Cp();
+    const volScalarField& cp = tcp();
+
+    tmp<volScalarField> trho = thermo.rho();
+    const volScalarField& rho = trho();
+
+    DiNum = max
+    (
+        solidRegionDiffNo
+        (
+            mesh,
+            runTime,
+            rho*cp,
+            magKappa()
+        ),
+        DiNum
+    );
+}
diff --git a/applications/solvers/heatTransfer/solidFoam/solidFoam.C b/applications/solvers/heatTransfer/solidFoam/solidFoam.C
index ccf2bef50416bcbef859c1b431e5d14181dcd536..6b75bf7c4dddbd1cecbb04b8362b39608de3a4ab 100644
--- a/applications/solvers/heatTransfer/solidFoam/solidFoam.C
+++ b/applications/solvers/heatTransfer/solidFoam/solidFoam.C
@@ -41,6 +41,8 @@ Description
 #include "fvOptions.H"
 #include "simpleControl.H"
 #include "pimpleControl.H"
+#include "dummyCourantNo.H"
+#include "solidRegionDiffNo.H"
 #include "coordinateSystem.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -88,17 +90,31 @@ int main(int argc, char *argv[])
     {
         pimpleControl pimple(mesh);
 
+        #include "createDyMControls.H"
+
         while (runTime.run())
         {
+            #include "readDyMControls.H"
+            #include "readSolidTimeControls.H"
+
+            #include "solidDiffusionNo.H"
+            #include "setMultiRegionDeltaT.H"
+
             ++runTime;
 
             Info<< "Time = " << runTime.timeName() << nl << endl;
 
             while (pimple.loop())
             {
-                if (pimple.firstIter())
+                if (pimple.firstIter() || moveMeshOuterCorrectors)
                 {
-                    mesh.update();
+                    // Do any mesh changes
+                    mesh.controlledUpdate();
+
+                    if (mesh.changing() && checkMeshCourantNo)
+                    {
+                        #include "meshCourantNo.H"
+                    }
                 }
 
                 while (pimple.correct())
diff --git a/applications/solvers/heatTransfer/solidFoam/solidRegionDiffNo.C b/applications/solvers/heatTransfer/solidFoam/solidRegionDiffNo.C
new file mode 120000
index 0000000000000000000000000000000000000000..55bd862448620dcbaf9dfdcdf05d65b15f1453af
--- /dev/null
+++ b/applications/solvers/heatTransfer/solidFoam/solidRegionDiffNo.C
@@ -0,0 +1 @@
+../chtMultiRegionFoam/solid/solidRegionDiffNo.C
\ No newline at end of file
diff --git a/applications/solvers/heatTransfer/solidFoam/solidRegionDiffNo.H b/applications/solvers/heatTransfer/solidFoam/solidRegionDiffNo.H
new file mode 120000
index 0000000000000000000000000000000000000000..d565f760b4fa6196177fdb8aea25027da35ce491
--- /dev/null
+++ b/applications/solvers/heatTransfer/solidFoam/solidRegionDiffNo.H
@@ -0,0 +1 @@
+../chtMultiRegionFoam/solid/solidRegionDiffNo.H
\ No newline at end of file
diff --git a/tutorials/heatTransfer/solidFoam/movingCone/system/controlDict b/tutorials/heatTransfer/solidFoam/movingCone/system/controlDict
index 43dc6aac73fc996e72eb9836f7b78fe03c29472b..70a7fcb1af5c73797d3b7ea763a799b69ca60817 100644
--- a/tutorials/heatTransfer/solidFoam/movingCone/system/controlDict
+++ b/tutorials/heatTransfer/solidFoam/movingCone/system/controlDict
@@ -44,9 +44,9 @@ timePrecision   6;
 
 runTimeModifiable true;
 
-adjustTimeStep  no;
+adjustTimeStep  yes;
 
-maxCo           0.2;
+maxDi           10;
 
 
 // ************************************************************************* //