diff --git a/src/mesh/snappyHexMesh/meshRefinement/meshRefinementBaffles.C b/src/mesh/snappyHexMesh/meshRefinement/meshRefinementBaffles.C
index 04b1f916c9bef56d0c59120bfc4d2788536153ae..0f47b7e6112a1aa282beaffc44937ffca7460703 100644
--- a/src/mesh/snappyHexMesh/meshRefinement/meshRefinementBaffles.C
+++ b/src/mesh/snappyHexMesh/meshRefinement/meshRefinementBaffles.C
@@ -4525,8 +4525,8 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::splitMesh
         {
             const face& f = mesh_.faces()[faceI];
 
-            label ownRegion = cellRegion[faceOwner[faceI]];
-            label neiRegion = cellRegion[faceNeighbour[faceI]];
+            const label ownRegion = cellRegion[faceOwner[faceI]];
+            const label neiRegion = cellRegion[faceNeighbour[faceI]];
 
             if (ownRegion == -1 && neiRegion != -1)
             {
@@ -4551,6 +4551,9 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::splitMesh
                 }
             }
         }
+
+        labelList neiCellRegion;
+        syncTools::swapBoundaryCellList(mesh_, cellRegion, neiCellRegion);
         for
         (
             label faceI = mesh_.nInternalFaces();
@@ -4560,9 +4563,10 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::splitMesh
         {
             const face& f = mesh_.faces()[faceI];
 
-            label ownRegion = cellRegion[faceOwner[faceI]];
+            const label ownRegion = cellRegion[faceOwner[faceI]];
+            const label neiRegion = neiCellRegion[faceI-mesh_.nInternalFaces()];
 
-            if (ownRegion == -1)
+            if (ownRegion == -1 && neiRegion != -1)
             {
                 forAll(f, fp)
                 {