diff --git a/Fltk/onelabWindow.cpp b/Fltk/onelabWindow.cpp
index 3aada903e0871304e012f5e4675c095c8fbdd4d6..5ce7ab007393be9e8ad8718e90f7b417a4516746 100644
--- a/Fltk/onelabWindow.cpp
+++ b/Fltk/onelabWindow.cpp
@@ -722,7 +722,10 @@ static void onelab_choose_executable_cb(Fl_Widget *w, void *data)
 #if defined(WIN32)
   pattern += ".exe";
 #endif
-  if(fileChooser(FILE_CHOOSER_SINGLE, "Choose executable", pattern.c_str())){
+  const char *old = 0;
+  if(!c->getCommandLine().empty()) old = c->getCommandLine().c_str();
+
+  if(fileChooser(FILE_CHOOSER_SINGLE, "Choose executable", pattern.c_str(), old)){
     std::string exe = fileChooserGetName(1);
     c->setCommandLine(exe);
     if(c->getIndex() >= 0 && c->getIndex() < 5)
diff --git a/doc/texinfo/gmsh.texi b/doc/texinfo/gmsh.texi
index 4881271a3d22c9532d9f59dfa021acab40f54c6c..0778673f22819db5f1ec2d41cdb1deb4a3f645fe 100644
--- a/doc/texinfo/gmsh.texi
+++ b/doc/texinfo/gmsh.texi
@@ -3041,9 +3041,10 @@ solver module, you need to specify its name (@code{Solver.Name0},
 @ref{Solver options list}).
 
 The client-server API for the solver interface is defined in the
-@file{onelab.h} header. See the sources of GetDP
-(@url{http://geuz.org/getdp}, for an example on how to use the ONELAB
-programming interface.
+@file{onelab.h} header. See @file{utils/solvers/c++/solver.cpp} for a
+simple example on how to use the ONELAB programming interface. See the
+sources of GetDP (@url{http://geuz.org/getdp} for a more comprehensive
+example.
 
 @menu
 * Solver options::