diff --git a/dune/solvers/iterationsteps/projectedblockgsstep.cc b/dune/solvers/iterationsteps/projectedblockgsstep.cc
index 25c4f71dbaf115de011c5ca2420e27e87858a672..97a6ff21363f8d840bc6f6c8aa91341b1c3075a2 100644
--- a/dune/solvers/iterationsteps/projectedblockgsstep.cc
+++ b/dune/solvers/iterationsteps/projectedblockgsstep.cc
@@ -12,10 +12,12 @@ void ProjectedBlockGSStep<MatrixType, VectorType>::iterate()
     const MatrixType& mat = *this->mat_;
 
     for (size_t i=0; i<this->x_->size(); i++) {
-
-        /** \todo Handle more general boundary conditions */
-        if ((*this->ignoreNodes_)[i][0])
+        auto ignoreCount = (*this->ignoreNodes_)[i].count();
+        if (ignoreCount == BlockSize)
             continue;
+        if (ignoreCount > 0)
+          DUNE_THROW(Dune::NotImplemented,
+                     "Individual blocks must be either ignored completely, or not at all");
 
         bool zeroDiagonal = false;
         for (size_t j=0; j<BlockSize; j++) {