diff --git a/Common/CreateFile.cpp b/Common/CreateFile.cpp
index 7323f80a0aba9ecf22d50a86719230c6e1d557d3..88e2c788f50ac26321576d1182ec6369c7744324 100644
--- a/Common/CreateFile.cpp
+++ b/Common/CreateFile.cpp
@@ -213,7 +213,7 @@ static void change_print_parameter(int frame)
 {
   double first = CTX::instance()->print.parameterFirst;
   double last = CTX::instance()->print.parameterLast;
-  double steps = CTX::instance()->print.parameterSteps;
+  double steps = CTX::instance()->print.parameterSteps - 1;
   if(steps <= 0) steps = 1;
   double step = (last - first) / steps;
   double v = first + frame * step * CTX::instance()->post.animStep;
@@ -562,22 +562,20 @@ void CreateOutputFile(const std::string &fileName, int format, bool redraw)
       }
       if(cycle != 2)
         status_play_manual(!cycle, 0, false);
-      else
-        change_print_parameter(0);
       for(unsigned int i = 0; i < frames.size(); i++){
+        if(cycle == 2)
+          change_print_parameter(i);
         if(fp)
           CreateOutputFile(CTX::instance()->homeDir + frames[i], FORMAT_PPM, false);
-        if(cycle != 2)
-          status_play_manual(!cycle, CTX::instance()->post.animStep, false);
-        else
-          change_print_parameter(i + 1);
-        if(!fp){
+        else{
           drawContext::global()->draw();
           SleepInSeconds(CTX::instance()->post.animDelay);
         }
+        if(cycle != 2)
+          status_play_manual(!cycle, CTX::instance()->post.animStep, false);
       }
       if(fp){
-        int repeat = (int)(CTX::instance()->post.animDelay * 24);
+        int repeat = (int)(CTX::instance()->post.animDelay * 30);
         if(repeat < 1) repeat = 1;
         std::string pattern("I");
         // including P frames would lead to smaller files, but the quality
diff --git a/Fltk/fileDialogs.cpp b/Fltk/fileDialogs.cpp
index 168816d691185cd60207cbf0a0979af238d93983..b27ac93f4139cc18ee54ea687a144fbcf65a33d7 100644
--- a/Fltk/fileDialogs.cpp
+++ b/Fltk/fileDialogs.cpp
@@ -408,7 +408,7 @@ int mpegFileDialog(const char *name)
     dialog->v[2] = new Fl_Value_Input(WB, y, ww2, BH);
     dialog->v[3] = new Fl_Value_Input(WB + ww2, y, ww2, BH);
     dialog->v[4] = new Fl_Value_Input(WB + 2 * ww2, y, 2 * BB + WB - 3 * ww2, BH,
-                                      "First / Last / Steps");
+                                      "First / last / steps");
     dialog->v[4]->align(FL_ALIGN_RIGHT);
     dialog->v[4]->minimum(1);
     dialog->v[4]->maximum(500);
@@ -500,7 +500,7 @@ int mpegFileDialog(const char *name)
         opt_print_delete_tmp_files(0, GMSH_SET | GMSH_GUI, (int)dialog->c[2]->value());
         int format = (o == dialog->preview) ? FORMAT_MPEG_PREVIEW : FORMAT_MPEG;
         dialog->buttons->deactivate();
-        CreateOutputFile(name, format);
+        CreateOutputFile(name, format, o == dialog->ok);
         dialog->buttons->activate();
         if(o == dialog->ok){
           dialog->window->hide();