diff --git a/dune/gfe/coupling/rodcontinuumsteklovpoincarestep.hh b/dune/gfe/coupling/rodcontinuumsteklovpoincarestep.hh
index 45f66d5b4091990e5189a8e0bcfc01b0a04e9650..3a1f7657f257148dd97765c707e196155b8338bf 100644
--- a/dune/gfe/coupling/rodcontinuumsteklovpoincarestep.hh
+++ b/dune/gfe/coupling/rodcontinuumsteklovpoincarestep.hh
@@ -660,6 +660,14 @@ linearizedContinuumNeumannToDirichletMap(const std::string& continuumName,
         boundaryFunctionalAssembler.assemble(localNeumannAssembler, rhs, false);
 
     }
+    
+    // Set the correct Dirichlet nodes
+    /** \brief Don't write this BitSetVector at each iteration */
+    Dune::BitSetVector<dim> dirichletNodes(rhs.size(),false);
+    for (size_t i=0; i<dirichletNodes.size(); i++)
+        dirichletNodes[i] = dirichletBoundary.containsVertex(i);
+    dynamic_cast<IterationStep<VectorType>* >(continuum(continuumName).solver_->iterationStep_)->ignoreNodes_ 
+           = &dirichletNodes;
 
     //   Solve the Neumann problem for the continuum
     VectorType x = complex_.continuum(continuumName).dirichletValues_;