diff --git a/dune/solvers/iterationsteps/blockgssteps.hh b/dune/solvers/iterationsteps/blockgssteps.hh
index f3d17ae769a99d4eba55add9c1f6819f2908f7d2..21e3ad38b3b366f4d397e2eeb7956c74d48467e0 100644
--- a/dune/solvers/iterationsteps/blockgssteps.hh
+++ b/dune/solvers/iterationsteps/blockgssteps.hh
@@ -52,12 +52,11 @@ void linearStep(const M& m, V& x, const V& b, const BitVector* ignore,
         diag = &*cIt;
     }
 
-    std::bitset<V::block_type::dimension> ignore_i(0);
-    if (ignore != nullptr)
-      ignore_i = (*ignore)[i];
+    using Ignore = std::bitset<V::block_type::dimension>;
 
     // Update iterate with correction
-    x[i] += localSolver(diag != nullptr ? *diag : Block(0.0), std::move(ri), ignore_i);
+    x[i] += localSolver(diag != nullptr ? *diag : Block(0.0), std::move(ri),
+                        ignore != nullptr ? (*ignore)[i] : Ignore(0));
   };
 
   if (direction != Direction::BACKWARD)