diff --git a/src/dynamicMesh/motionSmoother/motionSmoother.C b/src/dynamicMesh/motionSmoother/motionSmoother.C
index dad3ea59774e79359825640844dcd9ce9d83a3b1..3e87fbd7d51f5ac94f16c203fe97cfd3c25b6ff7 100644
--- a/src/dynamicMesh/motionSmoother/motionSmoother.C
+++ b/src/dynamicMesh/motionSmoother/motionSmoother.C
@@ -1056,6 +1056,16 @@ bool Foam::motionSmoother::scaleMesh
     pointField newPoints;
     {
         // Create overall displacement with same b.c.s as displacement_
+        wordList actualPatchTypes;
+        {
+            const pointBoundaryMesh& pbm = displacement_.mesh().boundary();
+            actualPatchTypes.setSize(pbm.size());
+            forAll(pbm, patchI)
+            {
+                actualPatchTypes[patchI] = pbm[patchI].type();
+            }
+        }
+
         pointVectorField totalDisplacement
         (
             IOobject
@@ -1068,7 +1078,8 @@ bool Foam::motionSmoother::scaleMesh
                 false
             ),
             scale_*displacement_,
-            displacement_.boundaryField().types()
+            displacement_.boundaryField().types(),
+            actualPatchTypes
         );
         correctBoundaryConditions(totalDisplacement);