diff --git a/mex/sources/bytecode/Evaluate.cc b/mex/sources/bytecode/Evaluate.cc
index a488a03509604077007a49bff96b66c36ba1fef7..06164ba2b4f8e3edb4bd72c19ec331642becd78a 100644
--- a/mex/sources/bytecode/Evaluate.cc
+++ b/mex/sources/bytecode/Evaluate.cc
@@ -1513,6 +1513,7 @@ Evaluate::evaluate_over_periods(const bool forward)
               it_code = begining;
               compute_block_time(0, false, false);
             }
+          it_ = periods+y_kmin-1; // Do not leave it_ in inconsistent state
         }
       else
         {
@@ -1521,6 +1522,7 @@ Evaluate::evaluate_over_periods(const bool forward)
               it_code = begining;
               compute_block_time(0, false, false);
             }
+          it_ = y_kmin; // Do not leave it_ in inconsistent state (see #1727)
         }
     }
 }
@@ -1596,11 +1598,17 @@ Evaluate::solve_simple_over_periods(const bool forward)
   else
     {
       if (forward)
-        for (it_ = y_kmin; it_ < periods+y_kmin; it_++)
-          solve_simple_one_periods();
+        {
+          for (it_ = y_kmin; it_ < periods+y_kmin; it_++)
+            solve_simple_one_periods();
+          it_= periods+y_kmin-1; // Do not leave it_ in inconsistent state
+        }
       else
-        for (it_ = periods+y_kmin-1; it_ >= y_kmin; it_--)
-          solve_simple_one_periods();
+        {
+          for (it_ = periods+y_kmin-1; it_ >= y_kmin; it_--)
+            solve_simple_one_periods();
+          it_ = y_kmin; // Do not leave it_ in inconsistent state (see #1727)
+        }
     }
   mxFree(g1);
   mxFree(r);
@@ -1665,6 +1673,7 @@ Evaluate::compute_complete_2b(const bool no_derivatives, double *_res1, double *
       else
         return;
     }
+  it_ = periods+y_kmin-1; // Do not leave it_ in inconsistent state
   return;
 }
 
@@ -1757,6 +1766,7 @@ Evaluate::compute_complete(double lambda, double *crit)
           else
             return false;
         }
+      it_ = periods+y_kmin-1; // Do not leave it_ in inconsistent state
     }
   mexPrintf("  lambda=%e, res2=%e\n", lambda, res2_);
   *crit = res2_/2;