diff --git a/MeshLib/Vtk/VtkMappedMeshSource.h b/MeshLib/Vtk/VtkMappedMeshSource.h
index 030150a51d8de40c0ad3bf91d0b1098fde93e7ed..962a064f04160aef2231e413972d6f457b48b43f 100644
--- a/MeshLib/Vtk/VtkMappedMeshSource.h
+++ b/MeshLib/Vtk/VtkMappedMeshSource.h
@@ -86,8 +86,11 @@ private:
             return false;
 
         vtkNew<vtkAOSDataArrayTemplate<T> > dataArray;
+        const bool hasArrayOwnership = false;
         dataArray->SetArray(propertyVector->data(),
-            static_cast<vtkIdType>(propertyVector->size()), 1);
+            static_cast<vtkIdType>(propertyVector->size()),
+            static_cast<int>(!hasArrayOwnership));
+        dataArray->SetNumberOfComponents(propertyVector->getNumberOfComponents());
         dataArray->SetName(prop_name.c_str());
 
         if(propertyVector->getMeshItemType() == MeshLib::MeshItemType::Node)