diff --git a/dune/solvers/common/algorithm.hh b/dune/solvers/common/algorithm.hh
index eb49bef1e2c363b3bfca049823dcf2626766a9ed..e00536fadf6bcd9548a0eda7d4f4057316bc486d 100644
--- a/dune/solvers/common/algorithm.hh
+++ b/dune/solvers/common/algorithm.hh
@@ -366,11 +366,11 @@ constexpr void ifElse(const Condition& condition, IfFunc&& ifFunc)
 namespace Imp {
 
   template<class T1, class T2>
-  constexpr auto equals(T1&& t1, T2&& t2, PriorityTag<1>) -> decltype(T1::value, T2::value, std::integral_constant<bool,T1::value == T2::value>())
+  constexpr auto equals(const T1& t1, const T2& t2, PriorityTag<1>) -> decltype(T1::value, T2::value, std::integral_constant<bool,T1::value == T2::value>())
   { return {}; }
 
   template<class T1, class T2>
-  constexpr auto equals(T1&& t1, T2&& t2, PriorityTag<0>)
+  constexpr auto equals(const T1& t1, const T2& t2, PriorityTag<0>)
   {
     return t1==t2;
   }