diff --git a/dumux/discretization/staggered/staggeredgeometryhelper.hh b/dumux/discretization/staggered/staggeredgeometryhelper.hh
index 46baf40989958b9987cf9dbc85947f4a15e6c078..614507c36c30fa0e13b104888af74a2842c0a6e4 100644
--- a/dumux/discretization/staggered/staggeredgeometryhelper.hh
+++ b/dumux/discretization/staggered/staggeredgeometryhelper.hh
@@ -36,7 +36,8 @@ namespace Dumux
 template<class Scalar>
 struct PairData
 {
-    int outerParallel;
+    int outerParallelFaceDofIdx;
+    int outerParallelElementDofIdx;
     std::pair<int,int> normalPair;
     int globalCommonEntIdx;
     Scalar parallelDistance;
@@ -131,7 +132,8 @@ public:
         // initialize values that could remain unitialized if the intersection lies on a boundary
         for(auto& data : pairData_)
         {
-            data.outerParallel = 0;
+            data.outerParallelFaceDofIdx = 0;
+            data.outerParallelElementDofIdx = 0;
             data.normalDistance = 0;
             data.parallelDistance = 0;
         }
@@ -204,7 +206,8 @@ public:
                                     {
                                         if(globalCommonEntIdx == pairData_[pairIdx].globalCommonEntIdx)
                                         {
-                                            pairData_[pairIdx].outerParallel = gridView_.indexSet().subIndex(diagonalNeighbor, dIs.indexInInside(), dim-1) + offset_;
+                                            pairData_[pairIdx].outerParallelFaceDofIdx = gridView_.indexSet().subIndex(diagonalNeighbor, dIs.indexInInside(), dim-1) + offset_;
+                                            pairData_[pairIdx].outerParallelElementDofIdx = dIs.indexInOutside();
                                             const auto& selfFacet = element_.template subEntity <1> (indexInInside);
                                             const auto& parallelFacet = diagonalNeighbor.template subEntity <1> (dIs.indexInInside());
                                             pairData_[pairIdx].parallelDistance = (selfFacet.geometry().center() - parallelFacet.geometry().center()).two_norm();
diff --git a/test/discretization/staggered/test_staggered.cc b/test/discretization/staggered/test_staggered.cc
index 9195ad767417527ea2cd20b9d6a9a5eba99de07d..dabcd115e0a78909fe41ba85c63f2d4ac5c54f9d 100644
--- a/test/discretization/staggered/test_staggered.cc
+++ b/test/discretization/staggered/test_staggered.cc
@@ -148,8 +148,8 @@ int main (int argc, char *argv[]) try
             << "; dist self/oppo " << std::setw(3) << scvf.selfToOppositeDistance()
             << ", norm1 in/out " << std::setw(3) << scvf.pairData(0).normalPair.first << "/" << std::setw(3) << scvf.pairData(0).normalPair.second
             << ", norm2 in/out " << std::setw(3) << scvf.pairData(1).normalPair.first << "/" << std::setw(3) << scvf.pairData(1).normalPair.second
-            << ", par1 in/out " << std::setw(3) << scvf.dofIndexSelf() << "/" << std::setw(3) << scvf.pairData(0).outerParallel
-            << ", par2 in/out " << std::setw(3) << scvf.dofIndexSelf() << "/" << std::setw(3) << scvf.pairData(1).outerParallel
+            << ", par1 in/out " << std::setw(3) << scvf.dofIndexSelf() << "/" << std::setw(3) << scvf.pairData(0).outerParallelFaceDofIdx
+            << ", par2 in/out " << std::setw(3) << scvf.dofIndexSelf() << "/" << std::setw(3) << scvf.pairData(1).outerParallelFaceDofIdx
             << ", normDist1 " << std::setw(3) << scvf.pairData(0).normalDistance
             << ", normDist2 " << std::setw(3) << scvf.pairData(1).normalDistance
             << ", parDist1 " << std::setw(3) << scvf.pairData(0).parallelDistance