diff --git a/dune/solvers/test/common.hh b/dune/solvers/test/common.hh
index 028dad406088381cb1b771594812bcf02df47526..7015536debd45974e770bb404e2b8fed4f9c5275 100644
--- a/dune/solvers/test/common.hh
+++ b/dune/solvers/test/common.hh
@@ -7,7 +7,6 @@
 
 #include <dune/common/fvector.hh>
 #include <dune/common/fmatrix.hh>
-#include <dune/common/function.hh>
 
 #include <dune/istl/matrixindexset.hh>
 
@@ -30,23 +29,6 @@
 #include <dune/solvers/norms/energynorm.hh>
 #include <dune/solvers/norms/twonorm.hh>
 
-template <class DomainType, class RangeType>
-class ConstantFunction :
-    public Dune::VirtualFunction<DomainType, RangeType>
-{
-    public:
-        ConstantFunction(double c):
-            c_(c)
-        {}
-
-        void evaluate(const DomainType& x, RangeType& y) const
-        {
-            y = c_;
-        }
-
-    private:
-        double c_;
-};
 
 template<class GridView, class Matrix>
 void constructPQ1Pattern(const GridView& gridView, Matrix& matrix)
@@ -231,7 +213,6 @@ void assemblePQ1RHS(const GridView& gridView, Vector& r, const Function& f)
     typedef typename FiniteElementCache::FiniteElementType FiniteElement;
 
     typedef typename FiniteElement::Traits::LocalBasisType::Traits::RangeType RangeType;
-    typedef typename Function::RangeType FunctionRangeType;
 
     const auto& indexSet = gridView.indexSet();
     FiniteElementCache cache;
@@ -265,8 +246,7 @@ void assemblePQ1RHS(const GridView& gridView, Vector& r, const Function& f)
             fe.localBasis().evaluateFunction(quadPos, values);
 
             // evaluate function
-            FunctionRangeType fAtPos;
-            f.evaluate(geometry.global(quadPos), fAtPos);
+            auto fAtPos = f(geometry.global(quadPos));
 
             // add vector entries
             double z = pt.weight() * integrationElement;
diff --git a/dune/solvers/test/mmgtest.cc b/dune/solvers/test/mmgtest.cc
index ae5268f0dd7872aa2a3eebb326bee4ef635f23c4..80318b5d6927bf6dfe203a039d141cb4fb8c255a 100644
--- a/dune/solvers/test/mmgtest.cc
+++ b/dune/solvers/test/mmgtest.cc
@@ -123,7 +123,9 @@ bool checkWithGrid(const GridType& grid, const std::string fileName="")
 
     Vector rhs(A.N());
     rhs = 0;
-    ConstantFunction<DomainType, RangeType> f(50);
+    auto f = [](const DomainType& x) -> RangeType
+      {return 50.0; };
+
     assemblePQ1RHS(gridView, rhs, f);
 
     Vector u(A.N());
diff --git a/dune/solvers/test/obstacletnnmgtest.cc b/dune/solvers/test/obstacletnnmgtest.cc
index 23858a85b5d310297d36d13fc1a9a1d043c7d16c..f6b938b2dd2eab6e8bc76b4020b24dcd45fbaa9b 100644
--- a/dune/solvers/test/obstacletnnmgtest.cc
+++ b/dune/solvers/test/obstacletnnmgtest.cc
@@ -114,7 +114,9 @@ bool checkWithGrid(const GridType& grid, const std::string fileName="")
 
     Vector rhs(A.N());
     rhs = 0;
-    ConstantFunction<DomainType, RangeType> f(50);
+    auto f = [](const DomainType& x) -> RangeType
+      {return 50.0; };
+
     assemblePQ1RHS(gridView, rhs, f);
 
     Vector u(A.N());
diff --git a/dune/solvers/test/projectedgradienttest.cc b/dune/solvers/test/projectedgradienttest.cc
index 131c73b0232efaa0804f7ded640769eddf540f4f..4e76bd441d923cc501452b13e71f5dc574ff55e0 100644
--- a/dune/solvers/test/projectedgradienttest.cc
+++ b/dune/solvers/test/projectedgradienttest.cc
@@ -84,7 +84,9 @@ bool checkWithGrid(const GridType& grid, const std::string fileName, int maxIter
 
     Vector rhs(A.N());
     rhs = 0;
-    ConstantFunction<DomainType, RangeType> f(50);
+    auto f = [](const DomainType& x) -> RangeType
+      {return 50.0; };
+
     assemblePQ1RHS(gridView, rhs, f);
 
     Vector u(A.N());
diff --git a/dune/solvers/test/quadraticipoptsolvertest.cc b/dune/solvers/test/quadraticipoptsolvertest.cc
index 52c177aab04d3484a8d47898b9fd7702259aa6b8..4ea4f561f480438188f1fa1e0c0a9ca8b292e1c1 100644
--- a/dune/solvers/test/quadraticipoptsolvertest.cc
+++ b/dune/solvers/test/quadraticipoptsolvertest.cc
@@ -77,7 +77,9 @@ bool checkWithGrid(const GridType& grid, const std::string fileName="")
 
     Vector rhs(A.N());
     rhs = 0;
-    ConstantFunction<DomainType, RangeType> f(50);
+    auto f = [](const DomainType& x) -> RangeType
+      {return 50.0; };
+
     assemblePQ1RHS(gridView, rhs, f);
 
     Vector u(A.N());