diff --git a/doc/dynare.texi b/doc/dynare.texi
index aa0933feb98b70f759a8071420d9d2cc17bdaa19..eccf5096d8c2f2c335ef538c4207fc53bb5ed77f 100644
--- a/doc/dynare.texi
+++ b/doc/dynare.texi
@@ -3056,9 +3056,6 @@ default value of @code{maxit} is 50.
 Convergence criterion for termination based on the function value. Iteration will cease when the residuals are smaller
 than @code{tolf}. Default: @code{eps^(1/3)}
 
-@item robust_lin_solve
-Triggers the use of a robust linear solver for the default @code{solve_algo=4}. 
-
 @item solve_algo = @var{INTEGER}
 @anchor{solve_algo}
 Determines the non-linear solver to use. Possible values for the option are:
@@ -3759,6 +3756,9 @@ trigger the computation of the solution with a trust region algorithm.
 
 @end table
 
+@item robust_lin_solve
+Triggers the use of a robust linear solver for the default @code{stack_solve_algo=0}. 
+
 @item solve_algo
 @xref{solve_algo}. Allows selecting the solver used with @code{stack_solve_algo=7}.
 
diff --git a/preprocessor/DynareBison.yy b/preprocessor/DynareBison.yy
index 48aacafbc1397c75dc465991b9510d1f04c2c946..adb17e03a3fd65cf3e65961f616c8d70f3fd699f 100644
--- a/preprocessor/DynareBison.yy
+++ b/preprocessor/DynareBison.yy
@@ -123,7 +123,7 @@ class ParsingDriver;
 %token QZ_CRITERIUM QZ_ZERO_THRESHOLD FULL DSGE_VAR DSGE_VARLAG DSGE_PRIOR_WEIGHT TRUNCATE
 %token RELATIVE_IRF REPLIC SIMUL_REPLIC RPLOT SAVE_PARAMS_AND_STEADY_STATE PARAMETER_UNCERTAINTY
 %token SHOCKS SHOCK_DECOMPOSITION SHOCK_GROUPS USE_SHOCK_GROUPS SIGMA_E SIMUL SIMUL_ALGO SIMUL_SEED ENDOGENOUS_TERMINAL_PERIOD
-%token SMOOTHER SMOOTHER2HISTVAL SQUARE_ROOT_SOLVER STACK_SOLVE_ALGO STEADY_STATE_MODEL SOLVE_ALGO SOLVER_PERIODS
+%token SMOOTHER SMOOTHER2HISTVAL SQUARE_ROOT_SOLVER STACK_SOLVE_ALGO STEADY_STATE_MODEL SOLVE_ALGO SOLVER_PERIODS ROBUST_LIN_SOLVE
 %token STDERR STEADY STOCH_SIMUL SURPRISE SYLVESTER SYLVESTER_FIXED_POINT_TOL REGIMES REGIME
 %token TEX RAMSEY_MODEL RAMSEY_POLICY RAMSEY_CONSTRAINTS PLANNER_DISCOUNT DISCRETIONARY_POLICY DISCRETIONARY_TOL
 %token <string_val> TEX_NAME
@@ -1061,6 +1061,7 @@ perfect_foresight_solver_options : o_stack_solve_algo
 				 | o_linear_approximation
                                  | o_no_homotopy
                                  | o_solve_algo
+                                 | o_robust_lin_solve
 				 | o_lmmcp
 				 | o_occbin
                                  | o_pf_tolf
@@ -2716,6 +2717,7 @@ o_simul_algo : SIMUL_ALGO EQUAL INT_NUMBER {
                                                driver.error("simul_algo=1 option is no longer supported");
                                            };
 o_stack_solve_algo : STACK_SOLVE_ALGO EQUAL INT_NUMBER { driver.option_num("stack_solve_algo", $3); };
+o_robust_lin_solve : ROBUST_LIN_SOLVE { driver.option_num("simul.robust_lin_solve", "1"); };
 o_endogenous_terminal_period : ENDOGENOUS_TERMINAL_PERIOD { driver.option_num("endogenous_terminal_period", "1"); };
 o_linear : LINEAR { driver.linear(); };
 o_order : ORDER EQUAL INT_NUMBER { driver.option_num("order", $3); };
diff --git a/preprocessor/DynareFlex.ll b/preprocessor/DynareFlex.ll
index 936bb7b9690042d0cca8e97bcf654cca20494732..33be4c8d975a92e33173bff77ee3c95d8de53984 100644
--- a/preprocessor/DynareFlex.ll
+++ b/preprocessor/DynareFlex.ll
@@ -637,6 +637,7 @@ DATE -?[0-9]+([YyAa]|[Mm]([1-9]|1[0-2])|[Qq][1-4]|[Ww]([1-9]{1}|[1-4][0-9]|5[0-2
 <DYNARE_STATEMENT>dr_algo {return token::DR_ALGO;}
 <DYNARE_STATEMENT>simul_algo {return token::SIMUL_ALGO;}
 <DYNARE_STATEMENT>stack_solve_algo {return token::STACK_SOLVE_ALGO;}
+<DYNARE_STATEMENT>robust_lin_solve {return token::ROBUST_LIN_SOLVE;}
 <DYNARE_STATEMENT>drop {return token::DROP;}
 <DYNARE_STATEMENT>order {return token::ORDER;}
 <DYNARE_STATEMENT>sylvester {return token::SYLVESTER;}