diff --git a/src/finiteVolume/fields/fvPatchFields/derived/activeBaffleVelocity/activeBaffleVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/activeBaffleVelocity/activeBaffleVelocityFvPatchVectorField.C
index c090d5296877c2a92d760bacb568971e0117ed4f..abc4619706097b9d6ff0da884c87d1905d31c256 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/activeBaffleVelocity/activeBaffleVelocityFvPatchVectorField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/activeBaffleVelocity/activeBaffleVelocityFvPatchVectorField.C
@@ -157,8 +157,15 @@ void Foam::activeBaffleVelocityFvPatchVectorField::autoMap
     //- Note: cannot map field from cyclic patch anyway so just recalculate
     //  Areas should be consistent when doing autoMap except in case of
     //  topo changes.
-    initWallSf_ = patch().Sf();
-    initCyclicSf_ = patch().boundaryMesh()[cyclicPatchLabel_].Sf();
+    //- Note: we don't want to use Sf here since triggers rebuilding of
+    //  fvMesh::S() which will give problems when mapped (since already
+    //  on new mesh)
+    const vectorField& areas = patch().boundaryMesh().mesh().faceAreas();
+    initWallSf_ = patch().patchSlice(areas);
+    initCyclicSf_ = patch().boundaryMesh()
+    [
+        cyclicPatchLabel_
+    ].patchSlice(areas);
 }
 
 void Foam::activeBaffleVelocityFvPatchVectorField::rmap
@@ -169,10 +176,13 @@ void Foam::activeBaffleVelocityFvPatchVectorField::rmap
 {
     fixedValueFvPatchVectorField::rmap(ptf, addr);
 
-    //- Note: cannot map field from cyclic patch anyway so just recalculate
-    //  Areas should be consistent when doing rmap (mainly reconstructPar)
-    initWallSf_ = patch().Sf();
-    initCyclicSf_ = patch().boundaryMesh()[cyclicPatchLabel_].Sf();
+    // See autoMap.
+    const vectorField& areas = patch().boundaryMesh().mesh().faceAreas();
+    initWallSf_ = patch().patchSlice(areas);
+    initCyclicSf_ = patch().boundaryMesh()
+    [
+        cyclicPatchLabel_
+    ].patchSlice(areas);
 }