diff --git a/matlab/perfect-foresight-models/solve_block_decomposed_problem.m b/matlab/perfect-foresight-models/solve_block_decomposed_problem.m
index 716c4ac8aa89b39cce497e7fcfd06d51d9f27be9..393e00b492f938749c053b635eb9f70ca734989b 100644
--- a/matlab/perfect-foresight-models/solve_block_decomposed_problem.m
+++ b/matlab/perfect-foresight-models/solve_block_decomposed_problem.m
@@ -57,7 +57,14 @@ for blk = 1:length(M_.block_structure.block)
         oo_.deterministic_simulation.block(blk).status = true;
         oo_.deterministic_simulation.block(blk).error = 0;
         oo_.deterministic_simulation.block(blk).iterations = 0;
-        [y, T] = feval(funcname, y, oo_.exo_simul, M_.params, oo_.steady_state, T, false, M_.maximum_lag, options_.periods);
+        if M_.block_structure.block(blk).Simulation_Type == 1
+            range = M_.maximum_lag+1:M_.maximum_lag+options_.periods;
+        else
+            range = M_.maximum_lag+options_.periods:-1:M_.maximum_lag+1;
+        end
+        for it_ = range
+            [y, T] = feval(funcname, y, oo_.exo_simul, M_.params, oo_.steady_state, T, it_, false);
+        end
     elseif M_.block_structure.block(blk).Simulation_Type == 3 || ... % solveForwardSimple
            M_.block_structure.block(blk).Simulation_Type == 4 || ... % solveBackwardSimple
            M_.block_structure.block(blk).Simulation_Type == 6 || ... % solveForwardComplete
diff --git a/preprocessor b/preprocessor
index f022c0e16e890a5647b16c3ad47547583b794142..ad583adcd4fc3463910708c86ea4bdc0b70a0826 160000
--- a/preprocessor
+++ b/preprocessor
@@ -1 +1 @@
-Subproject commit f022c0e16e890a5647b16c3ad47547583b794142
+Subproject commit ad583adcd4fc3463910708c86ea4bdc0b70a0826