diff --git a/src/OpenFOAM/meshes/polyMesh/zones/faceZone/faceZone.C b/src/OpenFOAM/meshes/polyMesh/zones/faceZone/faceZone.C
index e56730bd9eec8a55d1a3bc796e849fed0d461fd9..796e1cc9101d1703c9598dde880273340ac7b14b 100644
--- a/src/OpenFOAM/meshes/polyMesh/zones/faceZone/faceZone.C
+++ b/src/OpenFOAM/meshes/polyMesh/zones/faceZone/faceZone.C
@@ -134,16 +134,24 @@ void Foam::faceZone::calcCellLayers() const
 
         forAll (mf, faceI)
         {
+            label ownCellI = own[mf[faceI]];
+            label neiCellI =
+            (
+                zoneMesh().mesh().isInternalFace(mf[faceI])
+              ? nei[mf[faceI]]
+              : -1
+            );
+
             if (!faceFlip[faceI])
             {
                 // Face is oriented correctly, no flip needed
-                mc[faceI] = nei[mf[faceI]];
-                sc[faceI] = own[mf[faceI]];
+                mc[faceI] = neiCellI;
+                sc[faceI] = ownCellI;
             }
             else
             {
-                mc[faceI] = own[mf[faceI]];
-                sc[faceI] = nei[mf[faceI]];
+                mc[faceI] = ownCellI;
+                sc[faceI] = neiCellI;
             }
         }
         //Info << "masterCells: " << mc << endl;