diff --git a/dune/istl/solver.hh b/dune/istl/solver.hh
index 3a23973602925c12475453a6c00ab4dc4d4becf4..c4b6ad7c06dc5ee9c79c66266d678381071c25dd 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 || def<1E-30));    // convergence check
+        _res.converged = (Simd::allTrue(def<_def0*_parent._reduction || def<real_type(1E-30)));    // convergence check
         return _res.converged;
       }
 
     protected:
       void finalize(){
-        _res.converged = (Simd::allTrue(_def<_def0*_parent._reduction || _def<1E-30));
+        _res.converged = (Simd::allTrue(_def<_def0*_parent._reduction || _def<real_type(1E-30)));
         _res.iterations = _i;
         _res.reduction = static_cast<double>(Simd::max(_def/_def0));
         _res.conv_rate  = pow(_res.reduction,1.0/_i);