diff --git a/dune/solvers/test/multigridtest.cc b/dune/solvers/test/multigridtest.cc
index af1203a6a0cab5a3fe1c0e9edfae431129efc201..4e1af2f373f7ec01d3078e742c7c8bc42e989ae9 100644
--- a/dune/solvers/test/multigridtest.cc
+++ b/dune/solvers/test/multigridtest.cc
@@ -20,8 +20,8 @@
 #include <dune/solvers/transferoperators/compressedmultigridtransfer.hh>
 #include <dune/solvers/norms/energynorm.hh>
 #include <dune/solvers/solvers/loopsolver.hh>
+#include <dune/solvers/iterationsteps/blockgssteps.hh>
 #include <dune/solvers/iterationsteps/multigridstep.hh>
-#include <dune/solvers/iterationsteps/truncatedblockgsstep.hh>
 
 
 #include "common.hh"
@@ -54,7 +54,6 @@ struct MultigridTestSuite
         typedef MultigridStep<Matrix, Vector, BitVector> MGStep;
         typedef MultigridTransfer<Vector, BitVector, Matrix> Transfer;
         typedef CompressedMultigridTransfer<Vector, BitVector, Matrix> TransferImplementation;
-        typedef TruncatedBlockGSStep<Matrix, Vector> Smoother;
 
         // we need a vector of pointers to the transfer operator base class
         std::vector<Transfer*> transfer(grid.maxLevel());
@@ -67,7 +66,12 @@ struct MultigridTestSuite
         }
 
         // set up smoothers and basesolver
-        Smoother smoother, basesolver_step;
+        auto smoother =
+                 Dune::Solvers::BlockGSStepFactory<Matrix, Vector>::create(
+                     Dune::Solvers::BlockGS::LocalSolvers::gs()),
+             basesolver_step =
+                 Dune::Solvers::BlockGSStepFactory<Matrix, Vector>::create(
+                     Dune::Solvers::BlockGS::LocalSolvers::gs());
 
         typename Problem::Norm basenorm(basesolver_step);