diff --git a/Applications/DataExplorer/mainwindow.cpp b/Applications/DataExplorer/mainwindow.cpp
index 850e433f7a3441cd127add716e235faa1d5a414d..b83a6728d4633a0fc2325954fb641b14229364d5 100644
--- a/Applications/DataExplorer/mainwindow.cpp
+++ b/Applications/DataExplorer/mainwindow.cpp
@@ -1107,6 +1107,10 @@ void MainWindow::callGMSH(std::vector<std::string> & selectedGeometries,
                         fname = fname.substr(0, pos);
                     }
                     gmsh_command += " -o " + fname + ".msh";
+                    // Newer gmsh versions write a newer file format for meshes
+                    // per default. At the moment we can't read this new format.
+                    // This is a switch for gmsh to write the 'old' file format.
+                    gmsh_command += " -format msh22";
                     auto const return_value = std::system(gmsh_command.c_str());
                     if (return_value != 0)
                     {
diff --git a/Applications/FileIO/Legacy/createSurface.cpp b/Applications/FileIO/Legacy/createSurface.cpp
index 79ffd930734743c8f402f188cef7a81ece13e918..68f778734336433298d95f1d97f93c3d1ca4fbc0 100644
--- a/Applications/FileIO/Legacy/createSurface.cpp
+++ b/Applications/FileIO/Legacy/createSurface.cpp
@@ -87,6 +87,10 @@ bool createSurface(GeoLib::Polyline const& ply,
     std::string gmsh_command =
         gmsh_binary + " -2 -algo meshadapt \"" + file_base_name + ".geo\"";
     gmsh_command += " -o \"" + file_base_name + ".msh\"";
+    // Newer gmsh versions write a newer file format for meshes per default. At
+    // the moment we can't read this new format. This is a switch for gmsh to
+    // write the 'old' file format.
+    gmsh_command += " -format msh22";
     int const gmsh_return_value = std::system(gmsh_command.c_str());
     if (gmsh_return_value != 0)
     {