diff --git a/examples/init/stokes.dat.2d b/examples/init/stokes.dat.2d
index 19232d37587533c5adb60ff5eb47d2d24a0ae629..3fdf287e22cefc4173da9def8cb500a435c2a145 100644
--- a/examples/init/stokes.dat.2d
+++ b/examples/init/stokes.dat.2d
@@ -1,7 +1,8 @@
 dimension of world: 2
 
-stokesMesh->macro file name: ./macro/macro.stand.2d
 stokesMesh->global refinements: 0
+stokesMesh->dimension: 1.0 1.0
+stokesMesh->num cells: 4 4
 
 stokes->mesh: stokesMesh
 
@@ -14,7 +15,7 @@ stokes->solver->info:	2
 
 stokes->output[0]->filename: stokes_u.2d
 stokes->output[0]->name: u
-stokes->output[0]->subsampling: 0
+stokes->output[0]->subsampling: 2
 stokes->output[0]->output directory: ./output
 stokes->output[0]->ParaView format: 1
 stokes->output[0]->ParaView mode: 1
@@ -25,7 +26,7 @@ stokes->output[1]->output directory: ./output
 stokes->output[1]->ParaView format: 1
 stokes->output[1]->ParaView mode: 1
 
-stokes->viscosity: 0.1
+stokes->viscosity: 1.0
 stokes->density: 1.0
 stokes->boundary velocity: 10.0
 
diff --git a/src/amdis/DirichletBC.hpp b/src/amdis/DirichletBC.hpp
index 3cfd811aa53b5926300ff48547543e977c4d1aec..1729ec65a3f51a56f52450b108d924f236730ad5 100644
--- a/src/amdis/DirichletBC.hpp
+++ b/src/amdis/DirichletBC.hpp
@@ -78,8 +78,8 @@ namespace AMDiS
       finishImpl(matrix, rhs, solution, rowBasis, colBasis, ValueCategory_t<Range>{});
 
       // subtract columns of dirichlet nodes from rhs
-      for (auto const& triplet : columns)
-        rhs[triplet.row] -= triplet.value * solution[triplet.col];
+      // for (auto const& triplet : columns)
+      //   rhs[triplet.row] -= triplet.value * solution[triplet.col];
     }
 
   protected:
diff --git a/src/amdis/linear_algebra/mtl/DOFMatrix.hpp b/src/amdis/linear_algebra/mtl/DOFMatrix.hpp
index b8b4d85df3c7489c9206037f2ccc245bbc66d49a..efadcc319d8618f27bb854331f083a08bbbe4730 100644
--- a/src/amdis/linear_algebra/mtl/DOFMatrix.hpp
+++ b/src/amdis/linear_algebra/mtl/DOFMatrix.hpp
@@ -181,6 +181,7 @@ namespace AMDiS
       auto value = mtl::mat::value_map(*matrix);
 
       // iterate over the matrix
+#if 0
       for (auto r : mtl::major_of(*matrix)) {   // rows or columns
         for (auto i : mtl::nz_of(r)) {          // non-zeros within
           if (dirichletNodes[row(i)]) {
@@ -193,6 +194,16 @@ namespace AMDiS
           }
         }
       }
+#endif
+
+      for (auto r : mtl::rows_of(*matrix)) {   // rows or columns
+        if (dirichletNodes[r.value()]) {
+          for (auto i : mtl::nz_of(r)) {          // non-zeros within
+            // set identity row
+            value(i, (row(i) == col(i) ? value_type(1) : value_type(0)) );
+          }
+        }
+      }
 
       return columns;
     }