diff --git a/dune/solvers/iterationsteps/blockgssteps.hh b/dune/solvers/iterationsteps/blockgssteps.hh
index bd68b4cbf33ae0f78a44f7e5b7d2e1e408a0c5d7..f3d17ae769a99d4eba55add9c1f6819f2908f7d2 100644
--- a/dune/solvers/iterationsteps/blockgssteps.hh
+++ b/dune/solvers/iterationsteps/blockgssteps.hh
@@ -57,7 +57,7 @@ void linearStep(const M& m, V& x, const V& b, const BitVector* ignore,
       ignore_i = (*ignore)[i];
 
     // Update iterate with correction
-    x[i] += localSolver(diag ? *diag : Block(0.0), std::move(ri), ignore_i);
+    x[i] += localSolver(diag != nullptr ? *diag : Block(0.0), std::move(ri), ignore_i);
   };
 
   if (direction != Direction::BACKWARD)