diff --git a/matlab/ep/extended_path_core.m b/matlab/ep/extended_path_core.m
index dacaeb9932cbe45619150439e98c2801600ae8e2..a1ffc76bb56f34090a42232c6ebc3157da675255 100644
--- a/matlab/ep/extended_path_core.m
+++ b/matlab/ep/extended_path_core.m
@@ -49,7 +49,12 @@ if flag
         options.lmmcp = olmmcp;
         options.solve_algo = solve_algo;
         options.stack_solve_algo = stack_solve_algo;
-        [tmp,flag] = perfect_foresight_solver_core(M,options,oo);
+        [tmp, maxerror] = perfect_foresight_solver_core(M, options, oo);
+        if maxerror>options.dynatol.f
+            flag = false;
+        else
+            flag = true;
+        end
         if ~flag && ~options.no_homotopy
             exo_orig = oo.exo_simul;
             endo_simul = repmat(steady_state,1,periods+1);