diff --git a/dune-solvers/transferoperators/genericmultigridtransfer.hh b/dune-solvers/transferoperators/genericmultigridtransfer.hh
index a63eaf48d684eec5053938b44546f8abe772d8a1..e7a31d20a960cea2377d8e45e444271a7295386a 100644
--- a/dune-solvers/transferoperators/genericmultigridtransfer.hh
+++ b/dune-solvers/transferoperators/genericmultigridtransfer.hh
@@ -121,11 +121,11 @@ public:
 
                 for (int i=0; i<numCoarseBaseFct; i++) {
 
-                    int globalCoarse = coarseIndexSet.template subIndex<dim>(*cIt,i);
+                    int globalCoarse = coarseIndexSet.subIndex(*cIt,i,dim);
 
                     for (int j=0; j<numFineBaseFct; j++) {
 
-                        int globalFine = fineIndexSet.template subIndex<dim>(*fIt,j);
+                        int globalFine = fineIndexSet.subIndex(*fIt,j,dim);
 
                         Dune::FieldVector<ctype, dim> local = fGeometryInFather.global(fineBaseSet[j].position());
 
@@ -175,11 +175,11 @@ public:
 
                 for (int i=0; i<numCoarseBaseFct; i++) {
 
-                    int globalCoarse = coarseIndexSet.template subIndex<dim>(*cIt,i);
+                    int globalCoarse = coarseIndexSet.subIndex(*cIt,i,dim);
 
                     for (int j=0; j<numFineBaseFct; j++) {
 
-                        int globalFine = fineIndexSet.template subIndex<dim>(*fIt,j);
+                        int globalFine = fineIndexSet.subIndex(*fIt,j,dim);
 
                         // Evaluate coarse grid base function at the location of the fine grid dof