diff --git a/dune/tectonic/myblockproblem.hh b/dune/tectonic/myblockproblem.hh
index dea7dd1b8755de4dc09fe593d215e745577a383a..9770d24473448245a76bdb290092919927cedc05 100644
--- a/dune/tectonic/myblockproblem.hh
+++ b/dune/tectonic/myblockproblem.hh
@@ -142,8 +142,8 @@ class MyBlockProblem : /* NOT PUBLIC */ BlockNonlinearGSProblem<ConvexProblem> {
 
     // compute quadratic part of hessian (linearization.A += problem_.A)
     for (size_t i = 0; i < problem_.A.N(); ++i) {
-      auto const end = problem_.A[i].end();
-      for (auto it = problem_.A[i].begin(); it != end; ++it)
+      auto const end = std::end(problem_.A[i]);
+      for (auto it = std::begin(problem_.A[i]); it != end; ++it)
         linearization.A[i][it.index()] += *it;
     }
 
@@ -163,13 +163,13 @@ class MyBlockProblem : /* NOT PUBLIC */ BlockNonlinearGSProblem<ConvexProblem> {
 
     // apply truncation to stiffness matrix and rhs
     for (size_t row = 0; row < linearization.A.N(); ++row) {
-      auto const col_end = linearization.A[row].end();
-      for (auto col_it = linearization.A[row].begin(); col_it != col_end;
+      auto const col_end = std::end(linearization.A[row]);
+      for (auto col_it = std::begin(linearization.A[row]); col_it != col_end;
            ++col_it) {
         size_t const col = col_it.index();
         for (size_t i = 0; i < col_it->N(); ++i) {
-          auto const blockEnd = (*col_it)[i].end();
-          for (auto blockIt = (*col_it)[i].begin(); blockIt != blockEnd;
+          auto const blockEnd = std::end((*col_it)[i]);
+          for (auto blockIt = std::begin((*col_it)[i]); blockIt != blockEnd;
                ++blockIt)
             if (linearization.truncation[row][i] ||
                 linearization.truncation[col][blockIt.index()])
@@ -243,8 +243,8 @@ class MyBlockProblem<ConvexProblem>::IterateObject {
       LocalMatrixType const *localA = nullptr;
       LocalVectorType localb(problem.f[m]);
 
-      auto const end = problem.A[m].end();
-      for (auto it = problem.A[m].begin(); it != end; ++it) {
+      auto const end = std::end(problem.A[m]);
+      for (auto it = std::begin(problem.A[m]); it != end; ++it) {
         size_t const j = it.index();
         if (j == m)
           localA = &(*it); // localA = A[m][m]