diff --git a/MeshLib/IO/XDMF/XdmfHdfWriter.cpp b/MeshLib/IO/XDMF/XdmfHdfWriter.cpp
index 3456d21199bc5f4c304a22fa0141a1892f15a0ba..ad2ffc65650d16a03010fd0f1c01c1d04149f21c 100644
--- a/MeshLib/IO/XDMF/XdmfHdfWriter.cpp
+++ b/MeshLib/IO/XDMF/XdmfHdfWriter.cpp
@@ -27,6 +27,7 @@ struct TransformedMeshData final
 {
     std::vector<double> flattened_geometry_values;
     std::vector<int> flattened_topology_values;
+    ParentDataType parent_data_type;
 };
 struct XdmfHdfMesh final
 {
@@ -88,11 +89,11 @@ XdmfHdfWriter::XdmfHdfWriter(
         // actually this line is only needed to calculate the offset
         XdmfHdfData const& geometry = transformGeometry(
             mesh, flattened_geometry_values.data(), n_files, chunk_size_bytes);
-        auto const flattened_topology_values =
+        auto const [flattened_topology_values, parent_data_type] =
             transformToXDMFTopology(mesh, geometry.hdf.offsets[0]);
-        return std::make_unique<TransformedMeshData>(
-            TransformedMeshData{std::move(flattened_geometry_values),
-                                std::move(flattened_topology_values)});
+        return std::make_unique<TransformedMeshData>(TransformedMeshData{
+            std::move(flattened_geometry_values),
+            std::move(flattened_topology_values), parent_data_type});
     };
 
     // create metadata for transformed data and original ogs mesh data