diff --git a/dune/solvers/transferoperators/truncateddensemgtransfer.cc b/dune/solvers/transferoperators/truncateddensemgtransfer.cc
index 9ee7326614ddfdb767a187df07468c3c8b562702..ba6b8a862f902ee427c20f41de011154dd675733 100644
--- a/dune/solvers/transferoperators/truncateddensemgtransfer.cc
+++ b/dune/solvers/transferoperators/truncateddensemgtransfer.cc
@@ -1,7 +1,7 @@
 
 
-template<class DiscFuncType, class BitVectorType, class OperatorType>
-void TruncatedDenseMGTransfer<DiscFuncType, BitVectorType, OperatorType>::prolong(const DiscFuncType& f, DiscFuncType& t) const
+template<class VectorType, class BitVectorType, class MatrixType>
+void TruncatedDenseMGTransfer<VectorType, BitVectorType, MatrixType>::prolong(const VectorType& f, VectorType& t) const
 {
     // If the critical bitfield is not set, call the base class method
     if (this->critical_ == nullptr) {
@@ -21,10 +21,10 @@ void TruncatedDenseMGTransfer<DiscFuncType, BitVectorType, OperatorType>::prolon
 
     t.resize(this->matrix_.N());
 
-    typedef typename DiscFuncType::Iterator      Iterator;
-    typedef typename DiscFuncType::ConstIterator ConstIterator;
+    typedef typename VectorType::Iterator      Iterator;
+    typedef typename VectorType::ConstIterator ConstIterator;
 
-    typedef typename OperatorType::row_type RowType;
+    typedef typename MatrixType::row_type RowType;
     typedef typename RowType::ConstIterator ColumnIterator;
     
     Iterator tIt      = t.begin();
@@ -60,8 +60,8 @@ void TruncatedDenseMGTransfer<DiscFuncType, BitVectorType, OperatorType>::prolon
 
 }
 
-template<class DiscFuncType, class BitVectorType, class OperatorType>
-void TruncatedDenseMGTransfer<DiscFuncType, BitVectorType, OperatorType>::restrict(const DiscFuncType& f, DiscFuncType& t) const
+template<class VectorType, class BitVectorType, class MatrixType>
+void TruncatedDenseMGTransfer<VectorType, BitVectorType, MatrixType>::restrict(const VectorType& f, VectorType& t) const
 {
 
     // If the critical bitfield is not set, call the base class method
@@ -84,10 +84,10 @@ void TruncatedDenseMGTransfer<DiscFuncType, BitVectorType, OperatorType>::restri
     t.resize(this->matrix_.M());
     t = 0;
 
-    typedef typename DiscFuncType::Iterator      Iterator;
-    typedef typename DiscFuncType::ConstIterator ConstIterator;
+    typedef typename VectorType::Iterator      Iterator;
+    typedef typename VectorType::ConstIterator ConstIterator;
 
-    typedef typename OperatorType::row_type RowType;
+    typedef typename MatrixType::row_type RowType;
     typedef typename RowType::ConstIterator ColumnIterator;
 
     Iterator tIt      = t.begin();
@@ -104,7 +104,7 @@ void TruncatedDenseMGTransfer<DiscFuncType, BitVectorType, OperatorType>::restri
             
             // The following lines are a matrix-vector loop, but rows belonging
             // to critical dofs are left out
-            typename DiscFuncType::block_type& tEntry = t[cIt.index()];
+            typename VectorType::block_type& tEntry = t[cIt.index()];
             for (int i=0; i<blocksize; i++) {
                 
                 for (int j=0; j<blocksize; j++) {
@@ -123,9 +123,9 @@ void TruncatedDenseMGTransfer<DiscFuncType, BitVectorType, OperatorType>::restri
 }
 
 
-template<class DiscFuncType, class BitVectorType, class OperatorType>
-void TruncatedDenseMGTransfer<DiscFuncType, BitVectorType, OperatorType>::
-galerkinRestrict(const OperatorType& fineMat, OperatorType& coarseMat) const
+template<class VectorType, class BitVectorType, class MatrixType>
+void TruncatedDenseMGTransfer<VectorType, BitVectorType, MatrixType>::
+galerkinRestrict(const MatrixType& fineMat, MatrixType& coarseMat) const
 {
 
     // If the critical bitfield is not set, call the base class method
@@ -141,7 +141,7 @@ galerkinRestrict(const OperatorType& fineMat, OperatorType& coarseMat) const
   // ////////////////////////
   // Nonsymmetric case
   // ////////////////////////
-  typedef typename OperatorType::row_type RowType;
+  typedef typename MatrixType::row_type RowType;
   typedef typename RowType::Iterator ColumnIterator;
   typedef typename RowType::ConstIterator ConstColumnIterator;
 
@@ -199,7 +199,7 @@ galerkinRestrict(const OperatorType& fineMat, OperatorType& coarseMat) const
                   if (this->recompute_ && !((*this->recompute_)[iv][0]) && !((*this->recompute_)[jv][0]))
                       continue;
                   
-                  typename OperatorType::block_type& cm = coarseMat[iv][jv];
+                  typename MatrixType::block_type& cm = coarseMat[iv][jv];
                   
                   // Compute im * m * jm, but omitting the critical entries
                   for (int i=0; i<blocksize; i++) {