diff --git a/dune/istl/paamg/test/hierarchytest.cc b/dune/istl/paamg/test/hierarchytest.cc
index fcd0dc60afd29171c68b63f4435602419851d301..9bacb65c5d80fb7f3e05e4206e3c0d9f116c534c 100644
--- a/dune/istl/paamg/test/hierarchytest.cc
+++ b/dune/istl/paamg/test/hierarchytest.cc
@@ -15,7 +15,11 @@ int main(int argc, char** argv)
 {
   MPI_Init(&argc, &argv);
 
-  const int BS=1, N=10;
+  const int BS=1;
+  int N=10;
+
+  if(argc>1)
+    N = atoi(argv[1]);
 
   int procs, rank;
   MPI_Comm_rank(MPI_COMM_WORLD, &rank);
@@ -44,16 +48,11 @@ int main(int argc, char** argv)
 
   remoteIndices.rebuild<false>();
 
-  typedef Dune::Interface Interface;
-
-  Interface interface;
-
-  typedef Dune::EnumItem<GridFlag,GridAttributes::overlap> OverlapFlags;
+  typedef Dune::NegateSet<Communication::OwnerSet> OverlapFlags;
   typedef Dune::OverlappingSchwarzOperator<BCRSMat,Vector,Vector,Communication> Operator;
   typedef Dune::Amg::MatrixHierarchy<Operator,Communication> Hierarchy;
   typedef Dune::Amg::Hierarchy<Vector> VHierarchy;
 
-  interface.build(remoteIndices, Dune::NegateSet<OverlapFlags>(), OverlapFlags());
   Operator op(mat, pinfo);
   Hierarchy hierarchy(op, pinfo);
   VHierarchy vh(b);
@@ -62,15 +61,19 @@ int main(int argc, char** argv)
   Criterion;
 
   Criterion criterion(100,4);
+  Dune::Timer timer;
 
   hierarchy.build<OverlapFlags>(criterion);
   hierarchy.coarsenVector(vh);
 
+  std::cout<<"Building hierarchy took "<<timer.elapsed()<<std::endl;
 
   std::cout<<"=== Vector hierarchy has "<<vh.levels()<<" levels! ==="<<std::endl;
+  timer.reset();
 
   hierarchy.recalculateGalerkin(OverlapFlags());
 
+  std::cout<<"Recalculation took "<<timer.elapsed()<<std::endl;
   std::vector<std::size_t> data;
 
   hierarchy.getCoarsestAggregatesOnFinest(data);