diff --git a/dumux/freeflow/rans/problem.hh b/dumux/freeflow/rans/problem.hh
index 8cbe30f2b9a3ab29c60024d25b26a3cfab2f8ec4..c7a53fcd0a4c05c02af8a2d661da178d85cbde0a 100644
--- a/dumux/freeflow/rans/problem.hh
+++ b/dumux/freeflow/rans/problem.hh
@@ -193,16 +193,24 @@ public:
      *
      * \param scvf The sub control volume face.
      */
+    [[deprecated("Will be removed after release 3.4")]]
     bool isOnWall(const SubControlVolumeFace& scvf) const
     {
         return asImp_().isOnWallAtPos(scvf.center());
     }
 
+    bool isOnWall(const Element& element, const SubControlVolumeFace& scvf) const
+    {
+        // Return true if this wall has been marked as a Wall
+        return asImp_().boundaryTypes(element, scvf).hasWall();
+    }
+
     /*!
      * \brief Returns whether a given point is on a wall
      *
      * \param globalPos The position in global coordinates.
      */
+    [[deprecated("Will be removed after release 3.4")]]
     bool isOnWallAtPos(const GlobalPosition &globalPos) const
     {
         // Throw an exception if no walls are implemented
@@ -349,7 +357,7 @@ private:
             for (const auto& scvf : scvfs(fvGeometry))
             {
                 // only search for walls at a global boundary
-                if (!scvf.boundary() && asImp_().isOnWall(scvf))
+                if (!scvf.boundary() && asImp_().isOnWall(element, scvf))
                     wallFaceAxis.push_back(scvf.directionIndex());
             }
         }
diff --git a/dumux/freeflow/rans/twoeq/kepsilon/problem.hh b/dumux/freeflow/rans/twoeq/kepsilon/problem.hh
index 8936d1054ccfca40550b7150683e8e29ef02e506..b5fedcb8995841b7cdab478cfb1651cd1ac42d7f 100644
--- a/dumux/freeflow/rans/twoeq/kepsilon/problem.hh
+++ b/dumux/freeflow/rans/twoeq/kepsilon/problem.hh
@@ -309,7 +309,7 @@ public:
     {
         unsigned int elementIdx = asImp_().gridGeometry().elementMapper().index(element);
         auto bcTypes = asImp_().boundaryTypes(element, localSubFace);
-        return asImp_().isOnWall(localSubFace)
+        return asImp_().isOnWall(element, localSubFace)
                && bcTypes.isDirichlet(eqIdx)
                && isMatchingPoint(elementIdx);
     }
diff --git a/dumux/freeflow/rans/twoeq/kepsilon/staggered/fluxvariables.hh b/dumux/freeflow/rans/twoeq/kepsilon/staggered/fluxvariables.hh
index 0eca6c4ecc9ab239a1cd91c942382e21ecd41326..5317b7e82aa1f80c373a797f79019e06ce7bf35c 100644
--- a/dumux/freeflow/rans/twoeq/kepsilon/staggered/fluxvariables.hh
+++ b/dumux/freeflow/rans/twoeq/kepsilon/staggered/fluxvariables.hh
@@ -148,7 +148,7 @@ public:
         const auto bcTypes = problem.boundaryTypes(element, scvf);
         if (!(scvf.boundary() && (bcTypes.isOutflow(Indices::turbulentKineticEnergyEqIdx)
                                   || bcTypes.isSymmetry()
-                                  || problem.isOnWall(scvf))))
+                                  || bcTypes.hasWall())))
         {
             if (!(insideVolVars.isMatchingPoint() && outsideVolVars.isMatchingPoint())
                 || !(insideVolVars.isMatchingPoint() && outsideVolVars.inNearWallRegion())