diff --git a/Common/OpenFile.cpp b/Common/OpenFile.cpp
index 722fff2cb4d691fac96fbe69fc6324026ac15210..a873f281416b2a82f62f1c2af75d60c59e6b6101 100644
--- a/Common/OpenFile.cpp
+++ b/Common/OpenFile.cpp
@@ -374,6 +374,15 @@ int MergeFile(const std::string &fileName, bool warnIfMissing)
     status = readFile3M(fileName);
   }
 #endif
+#if defined(HAVE_ONELAB) && defined(HAVE_FLTK)
+  else if(ext == ".pro" && opt_solver_name(0, GMSH_GET, "") == "GetDP"){
+    std::vector<std::string> split = SplitFileName(fileName);
+    GModel::current()->setName("");
+    status = MergeFile(split[0] + split[1] + ".geo");
+    solver_cb(0, 0);
+    return status;
+  }
+#endif
 #if defined(HAVE_ONELAB_METAMODEL) && defined(HAVE_FLTK)
   else if(ext == ".ol"){
     // TODO: allow passing action to metamodel from command line