diff --git a/Fltk/graphicWindow.cpp b/Fltk/graphicWindow.cpp
index c5b82d650e43c98c037ce1b3a7dd3c966cfc5938..0d30485acae1b1866fc8d278615346c320966915 100644
--- a/Fltk/graphicWindow.cpp
+++ b/Fltk/graphicWindow.cpp
@@ -371,8 +371,18 @@ static void status_pause_cb(Fl_Widget *w, void *data)
 static void status_rewind_cb(Fl_Widget *w, void *data)
 {
   if(!CTX::instance()->post.animCycle) {
-    for(unsigned int i = 0; i < PView::list.size(); i++)
-      opt_view_timestep(i, GMSH_SET | GMSH_GUI, 0);
+    for(unsigned int i = 0; i < PView::list.size(); i++) {
+      // skip empty steps
+      int numSteps = (int)opt_view_nb_timestep(i, GMSH_GET, 0);
+      int step = 0;
+      while(step < numSteps){
+	if(PView::list[i]->getData()->hasTimeStep(step))
+	  break;
+	else
+	  step++;
+      }
+      opt_view_timestep(i, GMSH_SET | GMSH_GUI, step);
+    }
   }
   else {
     view_in_cycle = 0;