diff --git a/dune/solvers/transferoperators/genericmultigridtransfer.hh b/dune/solvers/transferoperators/genericmultigridtransfer.hh
index 973ce3c6bbdfb57d5e33c94e1039cfe0a538a842..37d1470a7daf1c81bf83f2153405c5bb15cbc3e6 100644
--- a/dune/solvers/transferoperators/genericmultigridtransfer.hh
+++ b/dune/solvers/transferoperators/genericmultigridtransfer.hh
@@ -784,23 +784,17 @@ public:
         // ////////////////////////
         // Nonsymmetric case
         // ////////////////////////
-        typedef typename OperatorType::row_type RowType;
-        typedef typename RowType::ConstIterator ColumnIterator;
-
-        typedef typename TransferOperatorType::row_type TransferRowType;
-        typedef typename TransferRowType::ConstIterator TransferColumnIterator;
-
         // Clear coarse matrix
         coarseMat = 0;
 
         // Loop over all rows of the stiffness matrix
         for (size_t v=0; v<fineMat.N(); v++)
         {
-            const RowType& row = fineMat[v];
+            const auto& row = fineMat[v];
 
             // Loop over all columns of the stiffness matrix
-            ColumnIterator m    = row.begin();
-            ColumnIterator mEnd = row.end();
+            auto m    = row.begin();
+            auto mEnd = row.end();
 
             for (; m!=mEnd; ++m)
             {
@@ -809,21 +803,21 @@ public:
                 int w = m.index();
 
                 // Loop over all coarse grid vectors iv that have v in their support
-                TransferColumnIterator im    = matrix[v].begin();
-                TransferColumnIterator imEnd = matrix[v].end();
+                auto im    = matrix[v].begin();
+                auto imEnd = matrix[v].end();
                 for (; im!=imEnd; ++im)
                 {
                     int iv = im.index();
 
                     // Loop over all coarse grid vectors jv that have w in their support
-                    TransferColumnIterator jm = matrix[w].begin();
-                    TransferColumnIterator jmEnd = matrix[w].end();
+                    auto jm = matrix[w].begin();
+                    auto jmEnd = matrix[w].end();
 
                     for (; jm!=jmEnd; ++jm)
                     {
                         int jv = jm.index();
 
-                        typename OperatorType::block_type& cm = coarseMat[iv][jv];
+                        auto& cm = coarseMat[iv][jv];
 
                         // Compute cm = im^T * m * jm
                         if(TransferOperatorType::block_type::rows==1)