diff --git a/dune/solvers/solvers/criterion.hh b/dune/solvers/solvers/criterion.hh
index ff1c473a7f83889efad170064e54e5445ef129ec..259f8f2bbd399333dd556c5f64470f9c4dd5e0d2 100644
--- a/dune/solvers/solvers/criterion.hh
+++ b/dune/solvers/solvers/criterion.hh
@@ -78,7 +78,7 @@ namespace Dune {
       template<class F,
         std::enable_if_t<std::is_convertible<std::result_of_t<F()>, std::string>::value, int> = 0>
       Criterion(F&& f, const std::string& header) :
-        f_( [=]() {return std::make_tuple(false, f());} ),
+        f_( [=]() mutable {return std::make_tuple(false, f());} ),
         header_(header)
       {}