diff --git a/dumux/material/fluidmatrixinteractions/2p/brookscorey.hh b/dumux/material/fluidmatrixinteractions/2p/brookscorey.hh
index 35ef237461161dfd0b1580abac1d8af113e58f1e..370746e1c1212351641e718d7931a640b6897a4e 100644
--- a/dumux/material/fluidmatrixinteractions/2p/brookscorey.hh
+++ b/dumux/material/fluidmatrixinteractions/2p/brookscorey.hh
@@ -107,6 +107,16 @@ public:
         return pow(pc/params.pe(), -params.lambda());
     }
 
+    /*!
+     * \brief The capillary pressure at Swe = 1.0 also called end point capillary pressure
+     *
+     * \param params A container object that is populated with the appropriate coefficients for the respective law.
+     *                  Therefore, in the (problem specific) spatialParameters  first, the material law is chosen, and then the params container
+     *                  is constructed accordingly. Afterwards the values are set there, too.
+     */
+    static Scalar endPointPc(const Params &params)
+    { return params.pe(); }
+
     /*!
      * \brief The partial derivative of the capillary
      *        pressure w.r.t. the effective saturation according to Brooks & Corey.
diff --git a/dumux/material/fluidmatrixinteractions/2p/efftoabslaw.hh b/dumux/material/fluidmatrixinteractions/2p/efftoabslaw.hh
index 93469ba29fcd26d3749a1b477e115848f9a4e517..bb5b4164a8f7f66b3511bbd704ab1c70d15184d5 100644
--- a/dumux/material/fluidmatrixinteractions/2p/efftoabslaw.hh
+++ b/dumux/material/fluidmatrixinteractions/2p/efftoabslaw.hh
@@ -101,6 +101,16 @@ public:
         return sweToSw_(params, EffLaw::sw(params, pc));
     }
 
+     /*!
+     * \brief The capillary pressure at Swe = 1.0 also called end point capillary pressure
+     *
+     * \param params A container object that is populated with the appropriate coefficients for the respective law.
+     *                  Therefore, in the (problem specific) spatialParameters  first, the material law is chosen, and then the params container
+     *                  is constructed accordingly. Afterwards the values are set there, too.
+     */
+    static Scalar endPointPc(const Params &params)
+    { return EffLaw::endPointPc(params); }
+
     /*!
      * \brief Returns the partial derivative of the capillary
      *        pressure w.r.t the absolute saturation.
diff --git a/dumux/material/fluidmatrixinteractions/2p/linearmaterial.hh b/dumux/material/fluidmatrixinteractions/2p/linearmaterial.hh
index 8c28cf4268ebabc4bc1752d73dbe7ad9905a1b01..cee892592b89074ec650082d336b6bbebb8ea7d1 100644
--- a/dumux/material/fluidmatrixinteractions/2p/linearmaterial.hh
+++ b/dumux/material/fluidmatrixinteractions/2p/linearmaterial.hh
@@ -89,6 +89,16 @@ public:
         return 1 - (pc - params.entryPc())/(params.maxPc() - params.entryPc());
     }
 
+    /*!
+     * \brief The capillary pressure at Swe = 1.0 also called end point capillary pressure
+     *
+     * \param params A container object that is populated with the appropriate coefficients for the respective law.
+     *                  Therefore, in the (problem specific) spatialParameters  first, the material law is chosen, and then the params container
+     *                  is constructed accordingly. Afterwards the values are set there, too.
+     */
+    static Scalar endPointPc(const Params &params)
+    { return params.entryPc(); }
+
     /*!
      * \brief Returns the partial derivative of the capillary
      *        pressure w.r.t. the effective saturation.
diff --git a/dumux/material/fluidmatrixinteractions/2p/regularizedbrookscorey.hh b/dumux/material/fluidmatrixinteractions/2p/regularizedbrookscorey.hh
index cfc2b6f90d4f6300814e62ace0c427cc60e07222..22bef0057101773ab834f61d41b58be5cd43451d 100644
--- a/dumux/material/fluidmatrixinteractions/2p/regularizedbrookscorey.hh
+++ b/dumux/material/fluidmatrixinteractions/2p/regularizedbrookscorey.hh
@@ -151,6 +151,16 @@ public:
         return BrooksCorey::sw(params, pc);
     }
 
+    /*!
+     * \brief The capillary pressure at Swe = 1.0 also called end point capillary pressure
+     *
+     * \param params A container object that is populated with the appropriate coefficients for the respective law.
+     *                  Therefore, in the (problem specific) spatialParameters  first, the material law is chosen, and then the params container
+     *                  is constructed accordingly. Afterwards the values are set there, too.
+     */
+    static Scalar endPointPc(const Params &params)
+    { return params.pe(); }
+
     /*!
      * \brief A regularized version of the partial derivative
      *        of the \f$\mathrm{p_c(\overline{S}_w)}\f$ w.r.t. effective saturation
diff --git a/dumux/material/fluidmatrixinteractions/2p/regularizedlinearmaterial.hh b/dumux/material/fluidmatrixinteractions/2p/regularizedlinearmaterial.hh
index b1382fe3819ed85ff64056fdcacfb8da3cdc5df0..5947169d7d763b45a2989272ea8a9d10221c9cb6 100644
--- a/dumux/material/fluidmatrixinteractions/2p/regularizedlinearmaterial.hh
+++ b/dumux/material/fluidmatrixinteractions/2p/regularizedlinearmaterial.hh
@@ -102,6 +102,16 @@ public:
         return LinearMaterial::sw(params, pc);
     }
 
+     /*!
+     * \brief The capillary pressure at Swe = 1.0 also called end point capillary pressure
+     *
+     * \param params A container object that is populated with the appropriate coefficients for the respective law.
+     *                  Therefore, in the (problem specific) spatialParameters  first, the material law is chosen, and then the params container
+     *                  is constructed accordingly. Afterwards the values are set there, too.
+     */
+    static Scalar endPointPc(const Params &params)
+    { return params.entryPc(); }
+
     /*!
      * \brief Returns the partial derivative of the capillary
      *        pressure to the effective saturation.
diff --git a/dumux/material/fluidmatrixinteractions/2p/regularizedvangenuchten.hh b/dumux/material/fluidmatrixinteractions/2p/regularizedvangenuchten.hh
index 30bf0d7c79110bc3f23aeb83bec4c80159be1c4d..426ca41f98495c9a9448e2decf92dff4a3538c1c 100644
--- a/dumux/material/fluidmatrixinteractions/2p/regularizedvangenuchten.hh
+++ b/dumux/material/fluidmatrixinteractions/2p/regularizedvangenuchten.hh
@@ -156,6 +156,12 @@ public:
         // Genuchten's law
         Scalar sw;
         if (pc <= 0) {
+            // for swThHigh = 1.0 the slope would get infinity
+            // swThHigh > 1.0 are not sensible threshold values
+            // setting swThHigh = 1.0 is a way to disable regularization
+            if (swThHigh > 1.0 - std::numeric_limits<Scalar>::epsilon())
+                return 1.0;
+
             // invert straight line for swe > 1.0
             Scalar yTh = VanGenuchten::pc(params, swThHigh);
             Scalar m1 = (0.0 - yTh)/(1.0 - swThHigh)*2;
@@ -187,6 +193,16 @@ public:
         return sw;
     }
 
+    /*!
+     * \brief The capillary pressure at Swe = 1.0 also called end point capillary pressure
+     *
+     * \param params A container object that is populated with the appropriate coefficients for the respective law.
+     *                  Therefore, in the (problem specific) spatialParameters  first, the material law is chosen, and then the params container
+     *                  is constructed accordingly. Afterwards the values are set there, too.
+     */
+    static Scalar endPointPc(const Params &params)
+    { return 0.0; }
+
     /*!
     * \brief A regularized version of the partial derivative
     *        of the \f$\mathrm{p_c(\overline{S}_w)}\f$ w.r.t. effective saturation
@@ -277,7 +293,7 @@ public:
 
         if (swe < 0)
             return 0;
-        else if (swe > 1)
+        else if (swe > 1 - std::numeric_limits<Scalar>::epsilon())
             return 1;
         else if (swe > swThHigh) {
             typedef Dumux::Spline<Scalar> Spline;
@@ -357,6 +373,12 @@ private:
     {
         const Scalar swThHigh = params.pcHighSw();
 
+        // for swThHigh = 1.0 the slope would get infinity
+        // swThHigh > 1.0 are not sensible threshold values
+        // setting swThHigh = 1.0 is a way to disable regularization
+        if (swThHigh > 1.0 - std::numeric_limits<Scalar>::epsilon())
+            return 0.0;
+
         Scalar pcswHigh = VanGenuchten::pc(params, swThHigh);
         return (0 - pcswHigh)/(1.0 - swThHigh);
     }
diff --git a/dumux/material/fluidmatrixinteractions/2p/vangenuchten.hh b/dumux/material/fluidmatrixinteractions/2p/vangenuchten.hh
index 75f1c768db023c923efd6dcf088475a34c2aa224..ffe43ef4b63fc5d277bdd2e8352b5478470d50e7 100644
--- a/dumux/material/fluidmatrixinteractions/2p/vangenuchten.hh
+++ b/dumux/material/fluidmatrixinteractions/2p/vangenuchten.hh
@@ -106,6 +106,16 @@ public:
         return sw;
     }
 
+    /*!
+     * \brief The capillary pressure at Swe = 1.0 also called end point capillary pressure
+     *
+     * \param params A container object that is populated with the appropriate coefficients for the respective law.
+     *                  Therefore, in the (problem specific) spatialParameters  first, the material law is chosen, and then the params container
+     *                  is constructed accordingly. Afterwards the values are set there, too.
+     */
+    static Scalar endPointPc(const Params &params)
+    { return 0.0; }
+
     /*!
      * \brief The partial derivative of the capillary
      *        pressure w.r.t. the effective saturation according to van Genuchten.