diff --git a/Applications/ApplicationsLib/ProjectData.cpp b/Applications/ApplicationsLib/ProjectData.cpp
index 8d2a41815e44652499da09925ca09937383cc3da..12e6cb06d5d37d245a5a3df6d8df36288fa296f0 100644
--- a/Applications/ApplicationsLib/ProjectData.cpp
+++ b/Applications/ApplicationsLib/ProjectData.cpp
@@ -428,7 +428,7 @@ void ProjectData::parseProcesses(BaseLib::ConfigTree const& processes_config,
             process = ProcessLib::HT::createHTProcess(
                 *_mesh_vec[0], std::move(jacobian_assembler),
                 _process_variables, _parameters, integration_order,
-                process_config, project_directory, output_directory);
+                process_config, _mesh_vec, output_directory);
         }
         else
 #endif
diff --git a/ProcessLib/CalculateSurfaceFlux/Balance.h b/ProcessLib/CalculateSurfaceFlux/Balance.h
index 99afc95099ecbeccdb30e4bb2c77d4ce4d82cac8..36ece38bec3930852367086402e0b58dbf90337b 100644
--- a/ProcessLib/CalculateSurfaceFlux/Balance.h
+++ b/ProcessLib/CalculateSurfaceFlux/Balance.h
@@ -23,6 +23,7 @@ namespace ProcessLib
 struct Balance
 {
     Balance(std::string&& balance_mesh_name,
+            std::vector<std::unique_ptr<MeshLib::Mesh>> const& meshes,
             std::string&& balance_property_vector_name,
             std::string&& balance_output_mesh_file_name)
         : mesh_name(std::move(balance_mesh_name)),
diff --git a/ProcessLib/HT/CreateHTProcess.cpp b/ProcessLib/HT/CreateHTProcess.cpp
index 3eea271f02af4512ba8696b6bebc2fd3347c6b05..74532627d3a19188455182b8031f408b03953832 100644
--- a/ProcessLib/HT/CreateHTProcess.cpp
+++ b/ProcessLib/HT/CreateHTProcess.cpp
@@ -35,7 +35,7 @@ std::unique_ptr<Process> createHTProcess(
     std::vector<std::unique_ptr<ParameterBase>> const& parameters,
     unsigned const integration_order,
     BaseLib::ConfigTree const& config,
-    std::string const& project_directory,
+    std::vector<std::unique_ptr<MeshLib::Mesh>> const& meshes,
     std::string const& output_directory)
 {
     //! \ogs_file_param{prj__processes__process__type}
@@ -210,12 +210,10 @@ std::unique_ptr<Process> createHTProcess(
 
     if (!mesh_name.empty())  // balance is optional
     {
-        mesh_name = BaseLib::copyPathToFileName(mesh_name, project_directory);
-
         balance_out_fname =
             BaseLib::copyPathToFileName(balance_out_fname, output_directory);
 
-        balance.reset(new ProcessLib::Balance(std::move(mesh_name),
+        balance.reset(new ProcessLib::Balance(std::move(mesh_name), meshes,
                                               std::move(balance_pv_name),
                                               std::move(balance_out_fname)));
 
diff --git a/ProcessLib/HT/CreateHTProcess.h b/ProcessLib/HT/CreateHTProcess.h
index 59b359c4b1c074d8d832553be3084a3edbda65bf..c890a365f9f2462c0da2e81f6bcc1dcd7f76f30e 100644
--- a/ProcessLib/HT/CreateHTProcess.h
+++ b/ProcessLib/HT/CreateHTProcess.h
@@ -23,7 +23,7 @@ std::unique_ptr<Process> createHTProcess(
     std::vector<std::unique_ptr<ParameterBase>> const& parameters,
     unsigned const integration_order,
     BaseLib::ConfigTree const& config,
-    std::string const& project_directory,
+    std::vector<std::unique_ptr<MeshLib::Mesh>> const& meshes,
     std::string const& output_directory);
 
 }  // namespace HT