diff --git a/Applications/ApplicationsLib/ProjectData.cpp b/Applications/ApplicationsLib/ProjectData.cpp
index ac0bc424546516379fd77b31f6d0d570a5bd4f76..147c4db819f19dbb6cd516cec5e472360b009e8f 100644
--- a/Applications/ApplicationsLib/ProjectData.cpp
+++ b/Applications/ApplicationsLib/ProjectData.cpp
@@ -23,6 +23,7 @@
 
 #include "MathLib/Curve/CreatePiecewiseLinearCurve.h"
 #include "MathLib/InterpolationAlgorithms/PiecewiseLinearInterpolation.h"
+#include "MeshGeoToolsLib/ConstructMeshesFromGeometries.h"
 #include "MeshLib/Mesh.h"
 
 #include "NumLib/ODESolver/ConvergenceCriterion.h"
@@ -133,6 +134,15 @@ ProjectData::ProjectData(BaseLib::ConfigTree const& project_config,
         _mesh_vec.push_back(mesh);
     }
 
+    auto additional_meshes =
+        MeshGeoToolsLib::constructAdditionalMeshesFromGeoObjects(*_geoObjects,
+                                                                 *_mesh_vec[0]);
+    // release the unique_ptr's while copying to the raw pointers storage.
+    // TODO (naumov) Store unique_ptr's in _mesh_vec.
+    std::transform(begin(additional_meshes), end(additional_meshes),
+                   std::back_inserter(_mesh_vec),
+                   [](auto&& mesh) { return mesh.release(); });
+
     //! \ogs_file_param{prj__curves}
     parseCurves(project_config.getConfigSubtreeOptional("curves"));