diff --git a/src/utils/CastArray.hpp b/src/utils/CastArray.hpp
index 71bfc246f81d4b8a2b54afc8d914e08447244ed3..07c696428573db04f05186464d0891851c686756 100644
--- a/src/utils/CastArray.hpp
+++ b/src/utils/CastArray.hpp
@@ -40,8 +40,9 @@ class [[nodiscard]] CastArray
     static_assert(not std::is_const_v<ImageCastDataType>);
 
     Assert(source_array.size() == image_array.size());
-
-    std::copy(source_array.m_values, source_array.m_values + source_array.size(), &image_array[0]);
+    if (source_array.size() > 0) {
+      std::copy(source_array.m_values, source_array.m_values + source_array.size(), &image_array[0]);
+    }
   }
 
   PUGS_INLINE