diff --git a/dune/solvers/iterationsteps/blockgssteps.hh b/dune/solvers/iterationsteps/blockgssteps.hh
index 18614d87c7092deb08cc32aefd2278b12385a9d4..98c2256ba3d60d457e9b51e6f7de438980dc383c 100644
--- a/dune/solvers/iterationsteps/blockgssteps.hh
+++ b/dune/solvers/iterationsteps/blockgssteps.hh
@@ -200,6 +200,7 @@ auto diagRegularize(double p, LocalSolver&& localSolver) {
 
 //! \brief is @LinearSolvers::direct with ignore nodes.
 //! \param r Regularization parameter. Set to 0.0 to switch off regularization.
+template <typename dummy = void>
 auto direct(double r = LocalSolverRegularizer::defaultDiagRegularizeParameter) {
   return [r](const auto& m, const auto& b, const auto& ignore) {
     auto directSolver = LinearSolvers::direct<std::decay_t<decltype(m)>,
@@ -213,6 +214,7 @@ auto direct(double r = LocalSolverRegularizer::defaultDiagRegularizeParameter) {
 }
 
 //! \brief is @LinearSolvers::ldlt with ignore nodes.
+template <typename dummy = void>
 auto ldlt(double r = LocalSolverRegularizer::defaultDiagRegularizeParameter) {
   return [r](const auto& m, const auto& b, const auto& ignore) {
     auto ldltSolver = LinearSolvers::ldlt<std::decay_t<decltype(m)>,
@@ -226,6 +228,7 @@ auto ldlt(double r = LocalSolverRegularizer::defaultDiagRegularizeParameter) {
 }
 
 //! \brief is @LinearSolvers::cg with ignore nodes.
+template <typename dummy = void>
 auto cg(size_t maxIter = LinearSolvers::defaultCgMaxIter,
         double tol = LinearSolvers::defaultCgTol,
         double r = LocalSolverRegularizer::defaultDiagRegularizeParameter) {