diff --git a/dumux/decoupled/2p/transport/fv/fvsaturation2p.hh b/dumux/decoupled/2p/transport/fv/fvsaturation2p.hh
index 226c8c4e75510dfa26b1eca46d85766891cce883..8312a9ebc26126fd3faa01d47435319a903deccd 100644
--- a/dumux/decoupled/2p/transport/fv/fvsaturation2p.hh
+++ b/dumux/decoupled/2p/transport/fv/fvsaturation2p.hh
@@ -884,24 +884,23 @@ int FVSaturation2P<TypeTag>::update(const Scalar t, Scalar& dt, RepresentationTy
                         break;
                     }
                     }
+                    Scalar boundaryFactor = problem_.neumannSat(globalPosFace, *isIt, factor);
 
-
-                    switch (saturationType_)
-                    {
-                    case Sw:
-                    {
-                        Scalar boundaryFactor = problem_.neumannPress(globalPosFace, *isIt)[wPhaseIdx];
-
-                        factor = boundaryFactor / densityWI * faceArea / (volume * porosity);
-                        break;
-                    }
-                    case Sn:
+                    if (factor != boundaryFactor)
                     {
-                        Scalar boundaryFactor = problem_.neumannPress(globalPosFace, *isIt)[nPhaseIdx];
-
-                        factor = boundaryFactor / densityNWI * faceArea / (volume * porosity);
-                        break;
-                    }
+                        switch (saturationType_)
+                        {
+                        case Sw:
+                        {
+                            factor = boundaryFactor / densityWI * faceArea / (volume * porosity);
+                            break;
+                        }
+                        case Sn:
+                        {
+                            factor = boundaryFactor / densityNWI * faceArea / (volume * porosity);
+                            break;
+                        }
+                        }
                     }