diff --git a/dumux/nonlinear/newtonsolver.hh b/dumux/nonlinear/newtonsolver.hh
index 42e2eca635103aca4e3607953831d205d0591bbf..43c87aeaccfd9d10d44c73a53cdfd9dda6d526c3 100644
--- a/dumux/nonlinear/newtonsolver.hh
+++ b/dumux/nonlinear/newtonsolver.hh
@@ -565,6 +565,15 @@ public:
                 return shift_ <= shiftTolerance_
                         && reduction_ <= reductionTolerance_;
         }
+        else if(enableShiftCriterion_ && enableResidualCriterion_)
+        {
+            if(enableAbsoluteResidualCriterion_)
+                return shift_ <= shiftTolerance_
+                        || residualNorm_ <= residualTolerance_;
+            else
+                return shift_ <= shiftTolerance_
+                        || reduction_ <= reductionTolerance_;
+        }
         else
         {
             return shift_ <= shiftTolerance_