diff --git a/Applications/Utils/ModelPreparation/PartitionMesh/NodeWiseMeshPartitioner.cpp b/Applications/Utils/ModelPreparation/PartitionMesh/NodeWiseMeshPartitioner.cpp
index 8f4cfc061991d04b4f9a4f2bbec5dd7d24e4aafc..2d9c5bf8c827624560197e1966f2d2beee7710b5 100644
--- a/Applications/Utils/ModelPreparation/PartitionMesh/NodeWiseMeshPartitioner.cpp
+++ b/Applications/Utils/ModelPreparation/PartitionMesh/NodeWiseMeshPartitioner.cpp
@@ -272,6 +272,9 @@ void NodeWiseMeshPartitioner::writePropertiesBinary(
 
     auto const& properties(_mesh->getProperties());
     auto const& property_names(properties.getPropertyVectorNames());
+    std::size_t number_of_properties(property_names.size());
+    out.write(reinterpret_cast<char*>(&number_of_properties),
+              sizeof(number_of_properties));
     for (auto const& name : property_names)
     {
         MeshLib::IO::PropertyVectorMetaData pvmd;
@@ -336,7 +339,9 @@ void NodeWiseMeshPartitioner::readPropertiesConfigDataBinary(
     {
         ERR("Could not open file '%s' in binary mode.", fname.c_str());
     }
-    while (is)
+    std::size_t number_of_properties = 0;
+    is.read(reinterpret_cast<char*>(&number_of_properties), sizeof(std::size_t));
+    for (std::size_t i(0); i < number_of_properties; ++i)
     {
         boost::optional<MeshLib::IO::PropertyVectorMetaData> pvmd(
             MeshLib::IO::readPropertyVectorMetaData(is));