diff --git a/dune/gfe/riemanniantrsolver.cc b/dune/gfe/riemanniantrsolver.cc
index 78fa3d233e1b5bdf7a278bc5bbc2e46ba57b51d5..d3c020280c5ad70efec47a18b7c89aa2f34751df 100644
--- a/dune/gfe/riemanniantrsolver.cc
+++ b/dune/gfe/riemanniantrsolver.cc
@@ -303,38 +303,6 @@ void RiemannianTrustRegionSolver<GridType,TargetSpace>::solve()
 
             rhs *= -1;        // The right hand side is the _negative_ gradient
 
-            ////////////////////////////////////////////////////////////////////////
-            //   Modify matrix and right-hand side to account for Dirichlet values
-            ////////////////////////////////////////////////////////////////////////
-
-            typedef typename MatrixType::row_type::Iterator ColumnIterator;
-
-            for (size_t j=0; j<ignoreNodes_->size(); j++) {
-
-                if (ignoreNodes_->operator[](j).count() > 0) {
-
-                    // make matrix row an identity row
-                    ColumnIterator cIt    = (*hessianMatrix_)[j].begin();
-                    ColumnIterator cEndIt = (*hessianMatrix_)[j].end();
-
-                    for (; cIt!=cEndIt; ++cIt) {
-                        for (int k=0; k<blocksize; k++) {
-                            if (ignoreNodes_->operator[](j)[k]) {
-                                (*cIt)[k] = 0;
-                                if (j==cIt.index())
-                                    (*cIt)[k][k] = 1;
-                            }
-                        }
-                    }
-
-                    // Dirichlet value.  Zero, because we are solving defect problems
-                    for (int k=0; k<blocksize; k++)
-                        if (ignoreNodes_->operator[](j)[k])
-                             rhs[j][k] = 0;
-                }
-
-            }
-
             if (this->verbosity_ == Solver::FULL)
               std::cout << "Assembly took " << gradientTimer.elapsed() << " sec." << std::endl;