diff --git a/dune/solvers/iterationsteps/trustregiongsstep.cc b/dune/solvers/iterationsteps/trustregiongsstep.cc
index bc1df55f8e542b5c43fd5f7bfd1f518be1b5553b..6aebc1885e8da8f74aa8e407d1161bb41074aa17 100644
--- a/dune/solvers/iterationsteps/trustregiongsstep.cc
+++ b/dune/solvers/iterationsteps/trustregiongsstep.cc
@@ -74,6 +74,11 @@ void TrustRegionGSStep<MatrixType, VectorType>::iterate()
                 }
 
             } else  {
+
+                // If the corresponding dof was truncated, then compute no correction
+                if (diag==0 && r == 0)
+                    continue;
+
                 // 1d problem is concave or linear.
                 // Minimum is attained at one of the boundaries
                 field_type lBound = obstacles[i].lower(j);