diff --git a/dune/solvers/iterationsteps/truncatedblockgsstep.hh b/dune/solvers/iterationsteps/truncatedblockgsstep.hh
index 6069091bb5ea45c71260d51970fe5114cbb292e3..1381e3a9617150a794516bd8ffc8f904ff5c5f4b 100644
--- a/dune/solvers/iterationsteps/truncatedblockgsstep.hh
+++ b/dune/solvers/iterationsteps/truncatedblockgsstep.hh
@@ -301,8 +301,9 @@ public:
                 typename MBlock::row_type::Iterator inner_it = A[i].begin();
                 typename MBlock::row_type::Iterator inner_end = A[i].end();
                 for(; inner_it!=inner_end; ++inner_it)
-                    if (inner_it.index()==i and *inner_it==0.0)
+                    if (ignore[i] && inner_it.index()==i)
                     {
+                        assert(*inner_it == 0.0);
                         *inner_it = 1.0;
                         b[i] = x[i];
                     }