diff --git a/istl/paamg/indicescoarsener.hh b/istl/paamg/indicescoarsener.hh
index 8055f7dd0b7d7acef53f5477f20a714d0906bc8a..4cb5fa892b83f259c30feae71cd36fed18ed09e9 100644
--- a/istl/paamg/indicescoarsener.hh
+++ b/istl/paamg/indicescoarsener.hh
@@ -81,7 +81,7 @@ namespace Dune
           aggregates_[edge.target()]=number_;
         }
 
-        size_t operator()(const TG& global)
+        size_t operator()(const GlobalIndex& global)
         {
           size_t current = number_;
           ++number_;
@@ -113,12 +113,12 @@ namespace Dune
           isPublic_=false;
         }
 
-        void attribute(const TA& attribute)
+        void attribute(const Attribute& attribute)
         {
           attribute_=attribute;
         }
 
-        TA attribute()
+        Attribute attribute()
         {
           return attribute_;
         }
@@ -126,7 +126,7 @@ namespace Dune
       private:
         size_t number_;
         bool isPublic_;
-        TA attribute_;
+        Attribute attribute_;
         AggregatesMap<Vertex>& aggregates_;
 
       };
@@ -260,8 +260,8 @@ namespace Dune
         }
 
         // Build remote index list
-        typedef RemoteIndexListModifier<TG,TA,N,false> Modifier;
-        typedef typename RemoteIndices::RemoteIndexType RemoteIndex;
+        typedef RemoteIndexListModifier<T,false> Modifier;
+        typedef typename RemoteIndices::RemoteIndex RemoteIndex;
         typedef typename IndexSet::const_iterator IndexIterator;
 
         Modifier coarseList = coarseRemote.template getModifier<false,true>(process);
@@ -271,7 +271,7 @@ namespace Dune
         for(IndexIterator index = coarseIndices.begin(); index != iend; ++index, ++i)
           if(attributes[i] != std::numeric_limits<char>::max()) {
             // remote index is present
-            coarseList.insert(RemoteIndex(TA(attributes[i]), &(*index)));
+            coarseList.insert(RemoteIndex(Attribute(attributes[i]), &(*index)));
           }
       }
 
@@ -280,7 +280,7 @@ namespace Dune
 
       // snyc the index set and the remote indices to recompute missing
       // indices
-      IndicesSyncer<TG,TA,N> syncer(coarseIndices, coarseRemote);
+      IndicesSyncer<IndexSet> syncer(coarseIndices, coarseRemote);
       syncer.sync(renumberer);
     }
 
diff --git a/istl/paamg/test/galerkintest.cc b/istl/paamg/test/galerkintest.cc
index e264731f3793531463671344326ea5ee4ee48e9e..f7cbb0914b69b019ab2177eee7685ddb8f0f062a 100644
--- a/istl/paamg/test/galerkintest.cc
+++ b/istl/paamg/test/galerkintest.cc
@@ -17,9 +17,9 @@ enum GridFlag { owner, overlap   };
 
 typedef Dune::ParallelLocalIndex<GridFlag> LocalIndex;
 typedef Dune::IndexSet<int,LocalIndex,101> IndexSet;
-typedef Dune::RemoteIndices<int,GridFlag,101> RemoteIndices;
-typedef Dune::Interface<int,GridFlag,101> Interface;
-typedef Dune::BufferedCommunicator<int,GridFlag,101> Communicator;
+typedef Dune::RemoteIndices<IndexSet> RemoteIndices;
+typedef Dune::Interface<IndexSet> Interface;
+typedef Dune::BufferedCommunicator<IndexSet> Communicator;
 
 template<int N, class M>
 void setupPattern(M& mat, IndexSet& indices, int overlapStart, int overlapEnd,
@@ -288,13 +288,13 @@ void testCoarsenIndices()
 
   typename Dune::PropertyMapTypeSelector<Dune::Amg::VertexVisitedTag,PropertiesGraph>::Type visitedMap = Dune::get(Dune::Amg::VertexVisitedTag(), pg);
 
-  Dune::Amg::IndicesCoarsener<Dune::EnumItem<GridFlag,overlap>,int,GridFlag,101>::coarsen(indices,
-                                                                                          remoteIndices,
-                                                                                          pg,
-                                                                                          visitedMap,
-                                                                                          aggregatesMap,
-                                                                                          coarseIndices,
-                                                                                          coarseRemote);
+  Dune::Amg::IndicesCoarsener<Dune::EnumItem<GridFlag,overlap>,IndexSet>::coarsen(indices,
+                                                                                  remoteIndices,
+                                                                                  pg,
+                                                                                  visitedMap,
+                                                                                  aggregatesMap,
+                                                                                  coarseIndices,
+                                                                                  coarseRemote);
   std::cout << rank <<": coarse indices: " <<coarseIndices << std::endl;
   std::cout << rank <<": coarse remote indices:"<<coarseRemote <<std::endl;