diff --git a/src/main.cpp b/src/main.cpp
index fb89bd524433283bf547040b3e7a089e848948ae..5f9949819724839153c1bf3233a5250c0f325699 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -27,11 +27,17 @@
 
 #include <limits>
 #include <map>
+#include <regex>
 
 int main(int argc, char *argv[])
 {
   std::string filename = initialize(argc, argv);
-  parser(filename);
+
+   std::regex gmsh_regex("(.*).msh");
+   if (not std::regex_match(filename, gmsh_regex))  {
+      parser(filename);
+      return 0;
+   }
 
   std::map<std::string, double> method_cost_map;