diff --git a/dune/solvers/iterationsteps/blockgssteps.hh b/dune/solvers/iterationsteps/blockgssteps.hh
index ece128737eb2bb9647bbbb22fd4d3b872c21b658..76cae5f91eeab69d4c6ebf86a4327d472227cfe5 100644
--- a/dune/solvers/iterationsteps/blockgssteps.hh
+++ b/dune/solvers/iterationsteps/blockgssteps.hh
@@ -352,7 +352,8 @@ auto gs(Args&&... args) {
  * \brief A Gauss--Seidel-type linear iteration step.
  * \param localSolver The solver for the linear block correction problems.
  */
-template <class Matrix, class Vector, class BitVector, class LocalSolver>
+template <class LocalSolver, class Matrix, class Vector,
+          class BitVector = Dune::Solvers::DefaultBitVector_t<Vector>>
 struct BlockGSStep : public LinearIterationStep<Matrix, Vector, BitVector> {
 
   //! \brief Implicitly default-construct local solver
@@ -415,7 +416,7 @@ struct BlockGSStepFactory {
   static auto create(
       LocalSolver&& localSolver,
       BlockGS::Direction direction = BlockGS::Direction::FORWARD) {
-    return BlockGSStep<Matrix, Vector, BitVector, LocalSolver>(
+    return BlockGSStep<LocalSolver, Matrix, Vector, BitVector>(
         std::forward<LocalSolver>(localSolver), direction);
   }
 
@@ -424,7 +425,7 @@ struct BlockGSStepFactory {
       LocalSolver&& localSolver,
       BlockGS::Direction direction = BlockGS::Direction::FORWARD) {
     return std::make_shared<
-        BlockGSStep<Matrix, Vector, BitVector, LocalSolver>>(
+        BlockGSStep<LocalSolver, Matrix, Vector, BitVector>>(
         std::forward<LocalSolver>(localSolver), direction);
   }
 
diff --git a/dune/solvers/iterationsteps/obstacletnnmgstep.hh b/dune/solvers/iterationsteps/obstacletnnmgstep.hh
index 8f369cfb3e8a370ca08805e9f403b5d49b0e4c41..f1a5b6b989f1832612f036f0c7297d3de77fe638 100644
--- a/dune/solvers/iterationsteps/obstacletnnmgstep.hh
+++ b/dune/solvers/iterationsteps/obstacletnnmgstep.hh
@@ -73,8 +73,7 @@ class ObstacleTNNMGStep
 
         typedef ProjectedBlockGSStep<Matrix, Vector> NonlinearSmoother;
         typedef Dune::Solvers::BlockGSStep<
-            Matrix, Vector, Dune::Solvers::DefaultBitVector_t<Vector>,
-            decltype(Dune::Solvers::BlockGS::LocalSolvers::gs())>
+        decltype(Dune::Solvers::BlockGS::LocalSolvers::gs()), Matrix, Vector>
             LinearSmoother;
         typedef MultigridStep<Matrix, Vector, BitVector> LinearMultigridStep;
         typedef EnergyNorm<Matrix, Vector> LinearBaseSolverEnergyNorm;