diff --git a/dumux/assembly/fclocalassembler.hh b/dumux/assembly/fclocalassembler.hh
index c58f85ba126bd267cf080a3f8b6bf8e3865e92eb..78050f1320f978bce8452bc22b3f1ebbd9f92cd4 100644
--- a/dumux/assembly/fclocalassembler.hh
+++ b/dumux/assembly/fclocalassembler.hh
@@ -385,7 +385,8 @@ public:
 
             auto evalFlux = [&](ElementResidualVector& residual, const SubControlVolumeFace& scvf)
             {
-                this->localResidual().evalFlux(residual, problem, element, fvGeometry, curElemVolVars, this->elemBcTypes(), this->elemFluxVarsCache(), scvf);
+                if (!scvf.processorBoundary())
+                    this->localResidual().evalFlux(residual, problem, element, fvGeometry, curElemVolVars, this->elemBcTypes(), this->elemFluxVarsCache(), scvf);
             };
 
             // derivative w.r.t. own DOF
@@ -470,6 +471,9 @@ public:
 
                         for (const auto& scvf : scvfs(fvGeometry, scv))
                         {
+                            if (scvf.processorBoundary())
+                                continue;
+
                             if (scvf.outsideScvIdx() == scvJ.index())
                             {
                                 evalFlux(residual, scvf);
@@ -502,6 +506,9 @@ public:
 
                         for (const auto& scvf : scvfs(fvGeometry, scv))
                         {
+                            if (scvf.processorBoundary())
+                                continue;
+
                             if (scvf.outsideScvIdx() == scvJ.index())
                             {
                                 evalFlux(result, scvf);
diff --git a/dumux/discretization/facecentered/staggered/connectivitymap.hh b/dumux/discretization/facecentered/staggered/connectivitymap.hh
index b6cd81092e4888e178019a6bab7eeccd69f41c16..8450a287dc87b5839c5c08588574b4e93873094a 100644
--- a/dumux/discretization/facecentered/staggered/connectivitymap.hh
+++ b/dumux/discretization/facecentered/staggered/connectivitymap.hh
@@ -58,16 +58,18 @@ public:
             if (element.partitionType() == Dune::InteriorEntity)
                 continue;
 
+            assert(element.partitionType() == Dune::OverlapEntity);
+
             // restrict the FvGeometry locally and bind to the element
             fvGeometry.bind(element);
             // loop over sub control faces
             for (const auto& scvf : scvfs(fvGeometry))
             {
-                if (scvf.isFrontal() && !scvf.boundary())
+                if (scvf.isFrontal() && !scvf.boundary() && !scvf.processorBoundary())
                 {
                     const auto& ownScv = fvGeometry.scv(scvf.insideScvIdx());
                     const auto& facet = element.template subEntity <1> (ownScv.indexInElement());
-                    if (facet.partitionType() == 1)
+                    if (facet.partitionType() == Dune::BorderEntity)
                     {
                         const auto& oppositeScv =  fvGeometry.scv(scvf.outsideScvIdx());
                         map_[ownScv.index()].push_back(oppositeScv.index());
@@ -83,6 +85,7 @@ public:
             // loop over sub control faces
             for (const auto& scvf : scvfs(fvGeometry))
             {
+                assert(!scvf.processorBoundary());
                 const auto& ownScv = fvGeometry.scv(scvf.insideScvIdx());
                 const auto ownDofIndex = ownScv.dofIndex();
                 const auto ownScvIndex = ownScv.index();
diff --git a/dumux/discretization/facecentered/staggered/elementvolumevariables.hh b/dumux/discretization/facecentered/staggered/elementvolumevariables.hh
index 32ca10c61d351bd357f7500b231f475e1a17cc8a..0c7cd0c5981ec426c53fe544ef0187274c7ce519 100644
--- a/dumux/discretization/facecentered/staggered/elementvolumevariables.hh
+++ b/dumux/discretization/facecentered/staggered/elementvolumevariables.hh
@@ -111,7 +111,7 @@ public:
 
         for (const auto& scvf : scvfs(fvGeometry))
         {
-            if (!scvf.boundary() || scvf.isFrontal())
+            if (!scvf.boundary() || scvf.isFrontal() || scvf.processorBoundary())
                 continue;
 
             // check if boundary is a pure dirichlet boundary