diff --git a/dumux/porenetwork/2p/fluxvariablescache.hh b/dumux/porenetwork/2p/fluxvariablescache.hh
index 2c4b60e4b188940c33f73be25778028c91e7e98b..151adfbb060cc9fa139930b0108bea6d81f540f4 100644
--- a/dumux/porenetwork/2p/fluxvariablescache.hh
+++ b/dumux/porenetwork/2p/fluxvariablescache.hh
@@ -83,6 +83,11 @@ public:
                 wettingLayerArea_[i] = Throat::wettingLayerCrossSectionalArea(curvatureRadius(), theta, cornerHalfAngles[i]);
 
             throatCrossSectionalArea_[wPhaseIdx()] = std::accumulate(wettingLayerArea_.begin(), wettingLayerArea_.end(), 0.0);
+            if (const Scalar totalArea = spatialParams.throatCrossSectionalArea(element, elemVolVars); throatCrossSectionalArea_[wPhaseIdx()] > totalArea)
+            {
+                std::cout << "\n\n *** WARNING : Sum of wetting phase layer areas exceeds total throat cross-sectional area. Clamping the result. *** \n" << std::endl;
+                throatCrossSectionalArea_[wPhaseIdx()] = totalArea;
+            }
             throatCrossSectionalArea_[nPhaseIdx()] = spatialParams.throatCrossSectionalArea(element, elemVolVars) - throatCrossSectionalArea_[wPhaseIdx()];
         }
         else // single-phase flow