diff --git a/src/mesh/ItemValue.hpp b/src/mesh/ItemValue.hpp
index 5115166b8d0cb9cd02f704fe2f5e58ba9a6c6bd8..d39421c5c3a89acd77c500af1f4d92f49ff4d958 100644
--- a/src/mesh/ItemValue.hpp
+++ b/src/mesh/ItemValue.hpp
@@ -37,16 +37,17 @@ class ItemValue
   // Allow const std:weak_ptr version to access our data
   friend ItemValue<std::add_const_t<DataType>, item_type, ConnectivityWeakPtr>;
 
+ public:
   friend PUGS_INLINE ItemValue<std::remove_const_t<DataType>, item_type, ConnectivityPtr>
   copy(const ItemValue<DataType, item_type, ConnectivityPtr>& source)
   {
-    ItemValue<std::remove_const_t<DataType>, item_type, ConnectivityPtr> image(*source.connectivity_ptr());
+    ItemValue<std::remove_const_t<DataType>, item_type, ConnectivityPtr> image;
 
-    image.m_values = copy(source.m_values);
+    image.m_connectivity_ptr = source.m_connectivity_ptr;
+    image.m_values           = copy(source.m_values);
     return image;
   }
 
- public:
   PUGS_INLINE
   bool
   isBuilt() const noexcept