diff --git a/Fltk/FlGui.cpp b/Fltk/FlGui.cpp
index 3f1dc378c2a6170539886dffb390e9f29d2eaf5a..cf769b728c4b9e35b873fbd9ed58524167870641 100644
--- a/Fltk/FlGui.cpp
+++ b/Fltk/FlGui.cpp
@@ -281,7 +281,7 @@ FlGui::FlGui(int argc, char **argv) : _openedThroughMacFinder(false)
   meshContext = new meshContextWindow(CTX::instance()->deltaFontSize);
   about = new aboutWindow();
 #if (FL_MAJOR_VERSION == 1) && (FL_MINOR_VERSION == 3)
-  onelab = new onelabWindow();
+  onelab = new onelabWindow(CTX::instance()->deltaFontSize);
 #endif
 
   // init solver plugin stuff
diff --git a/Fltk/onelabWindow.cpp b/Fltk/onelabWindow.cpp
index 20acdb9ea9c03d044a4b219e3e3ed5ef94bafabc..c74e3a0d7e4fbf7f86d58c7959f2b92fcc91782c 100644
--- a/Fltk/onelabWindow.cpp
+++ b/Fltk/onelabWindow.cpp
@@ -324,7 +324,7 @@ static void initializeLoop(std::string level)
   std::vector<onelab::number> numbers;
   onelab::server::instance()->get(numbers);
   for(unsigned int i = 0; i < numbers.size(); i++){
-    if(numbers[i].getAttribute("loop") == level){
+    if(numbers[i].getAttribute("Loop") == level){
       if(numbers[i].getChoices().size() > 1){
         numbers[i].setValue(numbers[i].getChoices()[0]);
         onelab::server::instance()->set(numbers[i]);
@@ -351,7 +351,7 @@ static bool incrementLoop(std::string level)
   std::vector<onelab::number> numbers;
   onelab::server::instance()->get(numbers);
   for(unsigned int i = 0; i < numbers.size(); i++){
-    if(numbers[i].getAttribute("loop") == level){
+    if(numbers[i].getAttribute("Loop") == level){
       loop = true;
       if(numbers[i].getChoices().size() > 1){
         // FIXME should store loopVariable attribute in the parameter
@@ -454,11 +454,11 @@ static void updateOnelabGraph(std::string num)
   std::vector<onelab::number> numbers;
   onelab::server::instance()->get(numbers);
   for(unsigned int i = 0; i < numbers.size(); i++){
-    if(numbers[i].getAttribute("graph_x") == num){
+    if(numbers[i].getAttribute("GraphX") == num){
       x = getRange(numbers[i]);
       xName = getShortName(numbers[i].getName(), numbers[i].getShortHelp());
     }
-    if(numbers[i].getAttribute("graph_y") == num){
+    if(numbers[i].getAttribute("GraphY") == num){
       y = getRange(numbers[i]);
       yName = getShortName(numbers[i].getName(), numbers[i].getShortHelp());
     }
@@ -570,7 +570,8 @@ void onelab_cb(Fl_Widget *w, void *data)
       }
     }
 
-    FlGui::instance()->onelab->checkForErrors("Gmsh");
+    if(action == "compute")
+      FlGui::instance()->onelab->checkForErrors("Gmsh");
     if(FlGui::instance()->onelab->stop()) break;
     
     // Iterate over all other clients
@@ -596,7 +597,8 @@ void onelab_cb(Fl_Widget *w, void *data)
         c->kill();
       }
       
-      FlGui::instance()->onelab->checkForErrors(c->getName());
+      if(action == "compute")
+        FlGui::instance()->onelab->checkForErrors(c->getName());
       if(FlGui::instance()->onelab->stop()) break;
     }
 
@@ -636,9 +638,9 @@ static void onelab_input_range_cb(Fl_Widget *w, void *data)
     numbers[0].setMax(o->maximum());
     numbers[0].setStep(o->step());
     numbers[0].setChoices(o->choices());
-    numbers[0].setAttribute("loop", o->loop());
-    numbers[0].setAttribute("graph_x", o->graph_x());
-    numbers[0].setAttribute("graph_y", o->graph_y());
+    numbers[0].setAttribute("Loop", o->loop());
+    numbers[0].setAttribute("GraphX", o->graph_x());
+    numbers[0].setAttribute("GraphY", o->graph_y());
     onelab::server::instance()->set(numbers[0]);
     updateOnelabGraphs();
   }
@@ -700,9 +702,10 @@ static void onelab_dump_cb(Fl_Widget *w, void *data)
   printf("ONELAB dump:\n%s\n", onelab::server::instance()->toChar().c_str());
 }
 
-onelabWindow::onelabWindow(int deltaFontSize) : _stop(false)
+onelabWindow::onelabWindow(int deltaFontSize)
+  : _deltaFontSize(deltaFontSize), _stop(false)
 {
-  FL_NORMAL_SIZE -= deltaFontSize;
+  FL_NORMAL_SIZE -= _deltaFontSize;
 
   int width = 29 * FL_NORMAL_SIZE;
   int height = 15 * BH + 3 * WB;
@@ -739,11 +742,13 @@ onelabWindow::onelabWindow(int deltaFontSize) : _stop(false)
     (CTX::instance()->solverPosition[0], CTX::instance()->solverPosition[1]);
   _win->end();
 
-  FL_NORMAL_SIZE += deltaFontSize;
+  FL_NORMAL_SIZE += _deltaFontSize;
 }
 
 void onelabWindow::rebuildTree()
 {
+  FL_NORMAL_SIZE -= _deltaFontSize;
+
   int width = (int)(0.5 * _tree->w());
 
   _tree->clear();
@@ -780,9 +785,9 @@ void onelabWindow::rebuildTree()
       but->maximum(numbers[i].getMax());
       but->step(numbers[i].getStep());
       but->choices(numbers[i].getChoices());
-      but->loop(numbers[i].getAttribute("loop"));
-      but->graph_x(numbers[i].getAttribute("graph_x"));
-      but->graph_y(numbers[i].getAttribute("graph_y"));
+      but->loop(numbers[i].getAttribute("Loop"));
+      but->graph_x(numbers[i].getAttribute("GraphX"));
+      but->graph_y(numbers[i].getAttribute("GraphY"));
       but->align(FL_ALIGN_RIGHT);
       but->callback(onelab_input_range_cb, (void*)n);
       but->when(FL_WHEN_RELEASE | FL_WHEN_ENTER_KEY);
@@ -838,6 +843,8 @@ void onelabWindow::rebuildTree()
   }
   
   _tree->redraw();
+
+  FL_NORMAL_SIZE += _deltaFontSize;
 }
 
 void onelabWindow::rebuildSolverList()
diff --git a/Fltk/onelabWindow.h b/Fltk/onelabWindow.h
index 34b974f03fc1e628eea3db428f97fec7307d05e2..8cf3abb36eeffc4101f669b6a06b75b638da4743 100644
--- a/Fltk/onelabWindow.h
+++ b/Fltk/onelabWindow.h
@@ -26,6 +26,7 @@ class onelabWindow{
   std::vector<Fl_Widget*> _treeWidgets;
   std::string _title;
   std::string _modelExtension;
+  int _deltaFontSize;
   bool _stop;
  public:
   onelabWindow(int deltaFontSize=0);