diff --git a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C
index ee6cea3e121be5c1a516d7424d82107fa9c0bbee..01ab952c165a5997df49085828e556fb41d6d209 100644
--- a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C
+++ b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C
@@ -2804,6 +2804,22 @@ void Foam::autoLayerDriver::addLayers
             << "Layer addition iteration " << iteration << nl
             << "--------------------------" << endl;
 
+
+        // Unset the extrusion at the pp.
+        const dictionary& meshQualityDict =
+        (
+            iteration < layerParams.nRelaxedIter()
+          ? motionDict
+          : motionDict.subDict("relaxed")
+        );
+
+        if (iteration >= layerParams.nRelaxedIter())
+        {
+            Info<< "Switched to relaxed meshQuality constraints." << endl;
+        }
+
+
+
         // Make sure displacement is equal on both sides of coupled patches.
         syncPatchDisplacement
         (
@@ -2845,6 +2861,7 @@ void Foam::autoLayerDriver::addLayers
             shrinkMeshMedialDistance
             (
                 meshMover,
+                meshQualityDict,
 
                 layerParams.nSmoothThickness(),
                 layerParams.maxThicknessToMedialRatio(),
@@ -3044,19 +3061,6 @@ void Foam::autoLayerDriver::addLayers
             layerFacesSet.write();
         }
 
-        // Unset the extrusion at the pp.
-        const dictionary& meshQualityDict =
-        (
-            iteration < layerParams.nRelaxedIter()
-          ? motionDict
-          : motionDict.subDict("relaxed")
-        );
-
-        if (iteration >= layerParams.nRelaxedIter())
-        {
-            Info<< "Switched to relaxed meshQuality constraints." << endl;
-        }
-
 
         label nTotChanged = checkAndUnmark
         (
diff --git a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.H b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.H
index 6cdec2004b68cbe8206b3e71c0dabc7387f0cd1d..164fd88ce04e5b06c33ef1c48d8745ea34a8dcc0 100644
--- a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.H
+++ b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.H
@@ -473,6 +473,7 @@ class autoLayerDriver
                 void shrinkMeshMedialDistance
                 (
                     motionSmoother& meshMover,
+                    const dictionary& meshQualityDict,
                     const label nSmoothThickness,
                     const scalar maxThicknessToMedialRatio,
                     const label nAllowableErrors,
diff --git a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriverShrink.C b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriverShrink.C
index 615978a308a973f611bf8455a822a81c57cbc392..cc88231b745637041d677b73ae6b6c1d92167b63 100644
--- a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriverShrink.C
+++ b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriverShrink.C
@@ -792,7 +792,7 @@ void Foam::autoLayerDriver::medialAxisSmoothingInfo
             wallInfo,
             pointWallDist,
             edgeWallDist,
-            mesh.nPoints()  // max iterations
+            mesh.globalData().nTotalPoints()    // max iterations
         );
     }
 
@@ -897,7 +897,7 @@ void Foam::autoLayerDriver::medialAxisSmoothingInfo
 
             pointMedialDist,
             edgeMedialDist,
-            mesh.nPoints()  // max iterations
+            mesh.globalData().nTotalPoints()    // max iterations
         );
 
         // Extract medial axis distance as pointScalarField
@@ -953,6 +953,7 @@ void Foam::autoLayerDriver::medialAxisSmoothingInfo
 void Foam::autoLayerDriver::shrinkMeshMedialDistance
 (
     motionSmoother& meshMover,
+    const dictionary& meshQualityDict,
     const label nSmoothThickness,
     const scalar maxThicknessToMedialRatio,
     const label nAllowableErrors,
@@ -1103,7 +1104,7 @@ void Foam::autoLayerDriver::shrinkMeshMedialDistance
             wallInfo,
             pointWallDist,
             edgeWallDist,
-            mesh.nPoints()  // max iterations
+            mesh.globalData().nTotalPoints()    // max iterations
         );
     }
 
@@ -1138,7 +1139,18 @@ void Foam::autoLayerDriver::shrinkMeshMedialDistance
             oldErrorReduction = meshMover.setErrorReduction(0.0);
         }
 
-        if (meshMover.scaleMesh(checkFaces, true, nAllowableErrors))
+        if
+        (
+            meshMover.scaleMesh
+            (
+                checkFaces,
+                List<labelPair>(0),
+                meshMover.paramDict(),
+                meshQualityDict,
+                true,
+                nAllowableErrors
+            )
+        )
         {
             Info<< "shrinkMeshMedialDistance : Successfully moved mesh" << endl;
             break;
diff --git a/src/dynamicMesh/motionSmoother/motionSmoother.C b/src/dynamicMesh/motionSmoother/motionSmoother.C
index 4f40827f4b3a8030217e79098e6716f8db96e018..d780ec79dde3dc9d33c007b0a3ddc73271d72b69 100644
--- a/src/dynamicMesh/motionSmoother/motionSmoother.C
+++ b/src/dynamicMesh/motionSmoother/motionSmoother.C
@@ -502,6 +502,12 @@ const Foam::labelList& Foam::motionSmoother::adaptPatchIDs() const
 }
 
 
+const Foam::dictionary& Foam::motionSmoother::paramDict() const
+{
+    return paramDict_;
+}
+
+
 Foam::pointVectorField& Foam::motionSmoother::displacement()
 {
     return displacement_;
diff --git a/src/dynamicMesh/motionSmoother/motionSmoother.H b/src/dynamicMesh/motionSmoother/motionSmoother.H
index e4aeac6f50756ec9a5f27da2602aa80ddad26036..3d853e476d3df0f757339ef8de1e3fee44c1ca66 100644
--- a/src/dynamicMesh/motionSmoother/motionSmoother.H
+++ b/src/dynamicMesh/motionSmoother/motionSmoother.H
@@ -327,6 +327,8 @@ public:
             //- Patch labels that are being adapted
             const labelList& adaptPatchIDs() const;
 
+            const dictionary& paramDict() const;
+
             //- Reference to displacement field
             pointVectorField& displacement();