diff --git a/src/mesh/ItemValueUtils.hpp b/src/mesh/ItemValueUtils.hpp
index b5151953c8bff1501124b027ef82c259c7bc17b7..9c36db12811d63b1942911afb12d514ebbdd213d 100644
--- a/src/mesh/ItemValueUtils.hpp
+++ b/src/mesh/ItemValueUtils.hpp
@@ -196,11 +196,11 @@ max(const ItemValue<DataType, item_type, ConnectivityPtr>& item_value)
   return parallel::allReduceMax(local_max);
 }
 
-template <typename DataType, ItemType item_type>
+template <typename DataType, ItemType item_type, typename ConnectivityPtr>
 std::remove_const_t<DataType>
-sum(const ItemValue<DataType, item_type>& item_value)
+sum(const ItemValue<DataType, item_type, ConnectivityPtr>& item_value)
 {
-  using ItemValueType   = ItemValue<DataType, item_type>;
+  using ItemValueType   = ItemValue<DataType, item_type, ConnectivityPtr>;
   using ItemIsOwnedType = ItemValue<const bool, item_type>;
   using data_type       = std::remove_const_t<typename ItemValueType::data_type>;
   using index_type      = typename ItemValueType::index_type;