diff --git a/dune/solvers/transferoperators/truncatedcompressedmgtransfer.cc b/dune/solvers/transferoperators/truncatedcompressedmgtransfer.cc
index 5b2694447faa95189506b701933491ec42e41ca7..38d1514c7c5e682775a823517deab3475827c7a9 100644
--- a/dune/solvers/transferoperators/truncatedcompressedmgtransfer.cc
+++ b/dune/solvers/transferoperators/truncatedcompressedmgtransfer.cc
@@ -1,5 +1,5 @@
-template<class DiscFuncType, class BitVectorType, class OperatorType>
-void TruncatedCompressedMGTransfer<DiscFuncType, BitVectorType, OperatorType>::prolong(const DiscFuncType& f, DiscFuncType& t,
+template<class VectorType, class BitVectorType, class MatrixType>
+void TruncatedCompressedMGTransfer<VectorType, BitVectorType, MatrixType>::prolong(const VectorType& f, VectorType& t,
                                               const BitVectorType& critical) const
 {
     if (f.size() != this->matrix_->M())
@@ -12,8 +12,8 @@ void TruncatedCompressedMGTransfer<DiscFuncType, BitVectorType, OperatorType>::p
 
     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 TransferOperatorType::row_type RowType;
     typedef typename RowType::ConstIterator ColumnIterator;
@@ -43,8 +43,8 @@ void TruncatedCompressedMGTransfer<DiscFuncType, BitVectorType, OperatorType>::p
     }
 }
 
-template<class DiscFuncType, class BitVectorType, class OperatorType>
-void TruncatedCompressedMGTransfer<DiscFuncType, BitVectorType, OperatorType>::restrict(const DiscFuncType& f, DiscFuncType& t,
+template<class VectorType, class BitVectorType, class MatrixType>
+void TruncatedCompressedMGTransfer<VectorType, BitVectorType, MatrixType>::restrict(const VectorType& f, VectorType& t,
                                               const BitVectorType& critical) const
 {
     if (f.size() != this->matrix_->N())
@@ -59,8 +59,8 @@ void TruncatedCompressedMGTransfer<DiscFuncType, BitVectorType, OperatorType>::r
     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 TransferOperatorType::row_type RowType;
     typedef typename RowType::ConstIterator ColumnIterator;
@@ -76,7 +76,7 @@ void TruncatedCompressedMGTransfer<DiscFuncType, BitVectorType, OperatorType>::r
 
             // 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++) {
 
                 if (!critical[rowIdx][i])
@@ -86,10 +86,9 @@ void TruncatedCompressedMGTransfer<DiscFuncType, BitVectorType, OperatorType>::r
     }
 }
 
-
-template<class DiscFuncType, class BitVectorType, class OperatorType>
-void TruncatedCompressedMGTransfer<DiscFuncType, BitVectorType, OperatorType>::
-galerkinRestrict(const OperatorType& fineMat, OperatorType& coarseMat,
+template<class VectorType, class BitVectorType, class MatrixType>
+void TruncatedCompressedMGTransfer<VectorType, BitVectorType, MatrixType>::
+galerkinRestrict(const MatrixType& fineMat, MatrixType& coarseMat,
                  const BitVectorType& critical) const
 {
     if (this->recompute_ != NULL && this->recompute_->size() != (unsigned int)this->matrix_->M())
@@ -99,7 +98,7 @@ galerkinRestrict(const OperatorType& fineMat, OperatorType& coarseMat,
   // ////////////////////////
   // Nonsymmetric case
   // ////////////////////////
-  typedef typename OperatorType::row_type RowType;
+  typedef typename MatrixType::row_type RowType;
   typedef typename RowType::Iterator ColumnIterator;
   typedef typename RowType::ConstIterator ConstColumnIterator;
 
@@ -156,7 +155,7 @@ galerkinRestrict(const OperatorType& fineMat, OperatorType& coarseMat,
                   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++) {