diff --git a/Fltk/onelabWindow.cpp b/Fltk/onelabWindow.cpp
index f607df36f419c4b92fe56055a2cb8a83d5f46a84..d06e623e7fd6f723d3ef6ab8d1587ec156523905 100644
--- a/Fltk/onelabWindow.cpp
+++ b/Fltk/onelabWindow.cpp
@@ -1143,6 +1143,13 @@ void onelabWindow::setButtonMode(const std::string &butt0, const std::string &bu
   }
 }
 
+bool onelabWindow::isBusy()
+{
+  std::string s(_butt[1]->label());
+  if(s == "Compute") return false;
+  return true;
+}
+
 void onelabWindow::rebuildSolverList()
 {
   // update OneLab window title and gear menu
@@ -1256,7 +1263,9 @@ void solver_cb(Fl_Widget *w, void *data)
   else
     FlGui::instance()->onelab->rebuildSolverList();
 
-  if(FlGui::instance()->onelab->getButtonMode() == "Compute")
+  if(FlGui::instance()->onelab->isBusy())
+    FlGui::instance()->onelab->show();
+  else
     onelab_cb(0, (void*)"check");
 }
 
diff --git a/Fltk/onelabWindow.h b/Fltk/onelabWindow.h
index 52f7188ce75e041687eac40bca8e2d5b7b15ccd7..4a740a2e8c13063ba5712f7b28e2a63fa3e25b16 100644
--- a/Fltk/onelabWindow.h
+++ b/Fltk/onelabWindow.h
@@ -39,7 +39,7 @@ class onelabWindow{
   void rebuildSolverList();
   void rebuildTree();
   void setButtonMode(const std::string &butt0, const std::string &butt1);
-  std::string getButtonMode(){ return _butt[1]->label(); }
+  bool isBusy();
   void show(){ _win->show(); }
   int shown(){ return _win->shown(); }
   int meshAuto(){ return _gear->menu()[2].value(); }