diff --git a/Common/OpenFile.cpp b/Common/OpenFile.cpp
index f311029c36435ca903cf14b055739691377af39c..c7662fe56f36849aa3aad50f248837dd23f9b68d 100644
--- a/Common/OpenFile.cpp
+++ b/Common/OpenFile.cpp
@@ -681,6 +681,8 @@ void OpenProjectMacFinder(const char *fileName)
     // Gmsh is running
     OpenProject(fileName);
     drawContext::global()->draw();
+    if(CTX::instance()->launchSolverAtStartup >= 0)
+      solver_cb(0, (void*)CTX::instance()->launchSolverAtStartup);
   }
 #endif
 }
diff --git a/Fltk/onelabGroup.cpp b/Fltk/onelabGroup.cpp
index c023d21363e76d2cece18daa66dae5527c9551f7..fcde484ccdd6ec9b8bb1de800721034d71500752 100644
--- a/Fltk/onelabGroup.cpp
+++ b/Fltk/onelabGroup.cpp
@@ -1758,8 +1758,14 @@ void solver_cb(Fl_Widget *w, void *data)
 
   if(FlGui::instance()->onelab->isBusy())
     FlGui::instance()->onelab->show();
-  else
-    onelab_cb(0, (num >= 0) ? (void*)"check" : (void*)"refresh");
+  else{
+    if(CTX::instance()->launchSolverAtStartup >= 0)
+      onelab_cb(0, (void*)"reset");
+    else if(num >= 0)
+      onelab_cb(0, (void*)"check");
+    else
+      onelab_cb(0, (void*)"refresh");
+  }
 
   CTX::instance()->launchSolverAtStartup = -1;
 }