diff --git a/dune/istl/solver.hh b/dune/istl/solver.hh
index 0e100512baed5970b45f79e2afe4cd57002effa1..3a23973602925c12475453a6c00ab4dc4d4becf4 100644
--- a/dune/istl/solver.hh
+++ b/dune/istl/solver.hh
@@ -470,13 +470,13 @@ namespace Dune
         }
         _def = def;
         _i = i;
-        _res.converged = (Simd::allTrue(def<_def0*_parent._reduction) || Simd::max(def)<1E-30);    // convergence check
+        _res.converged = (Simd::allTrue(def<_def0*_parent._reduction || def<1E-30));    // convergence check
         return _res.converged;
       }
 
     protected:
       void finalize(){
-        _res.converged = (Simd::allTrue(_def<_def0*_parent._reduction) || Simd::max(_def)<1E-30);
+        _res.converged = (Simd::allTrue(_def<_def0*_parent._reduction || _def<1E-30));
         _res.iterations = _i;
         _res.reduction = static_cast<double>(Simd::max(_def/_def0));
         _res.conv_rate  = pow(_res.reduction,1.0/_i);