diff --git a/matlab/dynare_solve_block_or_bytecode.m b/matlab/dynare_solve_block_or_bytecode.m
index 301d3aa26615a8e8dbb9617a19eefd38199d7ea8..ce82bc5dfd547748e854c0ce22598781bd27e62e 100644
--- a/matlab/dynare_solve_block_or_bytecode.m
+++ b/matlab/dynare_solve_block_or_bytecode.m
@@ -37,7 +37,7 @@ if options.block && ~options.bytecode
             else
                 n = length(M.block_structure_stat.block(b).variable);
                 [ss, check] = solve_one_boundary([M.fname '_static_' int2str(b)], ss, exo, ...
-                                                 params, [], M.block_structure_stat.block(b).variable, n, 1, 0, b, 0, options.maxit_, ...
+                                                 params, [], M.block_structure_stat.block(b).variable, n, 1, 0, b, 0, options.simul.maxit, ...
                                                  options.solve_tolf, ...
                                                  options.slowc, 0, options.solve_algo, 1, 0, 0,M,options);
                 if check
diff --git a/matlab/ep/extended_path.m b/matlab/ep/extended_path.m
index 981d84706871fab7521690f270ae942ba02cf04a..c0bdaa3a614be67fa2fef33bd69164d64f0c2817 100644
--- a/matlab/ep/extended_path.m
+++ b/matlab/ep/extended_path.m
@@ -50,7 +50,7 @@ if isempty(initial_conditions)
 end
 
 % Set maximum number of iterations for the deterministic solver.
-options_.maxit_ = options_.ep.maxit;
+options_.simul.maxit = options_.ep.maxit;
 
 % Set the number of periods for the perfect foresight model
 periods = options_.ep.periods;
diff --git a/matlab/ep/solve_stochastic_perfect_foresight_model.m b/matlab/ep/solve_stochastic_perfect_foresight_model.m
index 12b8b37cf9d0f27772f5e4ddde39485d59a0b7fd..683a6cec6d216d295c7adce1c60713d3f2ec8ae2 100644
--- a/matlab/ep/solve_stochastic_perfect_foresight_model.m
+++ b/matlab/ep/solve_stochastic_perfect_foresight_model.m
@@ -224,7 +224,7 @@ function [flag,endo_simul,err] = solve_stochastic_perfect_foresight_model(endo_s
             fprintf('\n') ;
             disp(['     Total time of simulation        :' num2str(etime(clock,h1))]) ;
             fprintf('\n') ;
-            disp(['WARNING : maximum number of iterations is reached (modify options_.maxit_).']) ;
+            disp(['WARNING : maximum number of iterations is reached (modify options_.simul.maxit).']) ;
             fprintf('\n') ;
         end
         flag = 1;% more iterations are needed.
diff --git a/matlab/ep/solve_stochastic_perfect_foresight_model_1.m b/matlab/ep/solve_stochastic_perfect_foresight_model_1.m
index f732792e5d3be1ed8a9bc93a62c3dde039daf9f6..01d7bcaccf4cf7ce8afb530055ba82ad1187ab83 100644
--- a/matlab/ep/solve_stochastic_perfect_foresight_model_1.m
+++ b/matlab/ep/solve_stochastic_perfect_foresight_model_1.m
@@ -274,7 +274,7 @@ function [flag,endo_simul,err] = solve_stochastic_perfect_foresight_model_1(endo
             fprintf('\n') ;
             disp(['     Total time of simulation        :' num2str(etime(clock,h1))]) ;
             fprintf('\n') ;
-            disp(['WARNING : maximum number of iterations is reached (modify options_.maxit_).']) ;
+            disp(['WARNING : maximum number of iterations is reached (modify options_.simul.maxit).']) ;
             fprintf('\n') ;
         end
         flag = 1;% more iterations are needed.
diff --git a/matlab/perfect_foresight_simulation.m b/matlab/perfect_foresight_simulation.m
index 17d253a91901cb474a508e9410eddd33e3db1086..ffef743edff31a71a08448c6025eab55086b76b3 100644
--- a/matlab/perfect_foresight_simulation.m
+++ b/matlab/perfect_foresight_simulation.m
@@ -93,14 +93,14 @@ it_init = M_.maximum_lag+1;
 info.convergence = 1;
 info.time  = 0;
 info.error = 0;
-info.iterations.time  = zeros(options_.maxit_,1);
+info.iterations.time  = zeros(options_.simul.maxit,1);
 info.iterations.error = info.iterations.time;
 
-last_line = options_.maxit_;
+last_line = options_.simul.maxit;
 error_growth = 0;
 
 h1 = clock;
-for iter = 1:options_.maxit_
+for iter = 1:options_.simul.maxit
     h2 = clock;
     if options_.terminal_condition
         c = zeros(ny*(periods+1),nrc);
diff --git a/matlab/setup_stochastic_perfect_foresight_model_solver.m b/matlab/setup_stochastic_perfect_foresight_model_solver.m
index 616281783afb5df12f4d2b0435835c85b6880dd9..42cba7c8a8f50392b44963c5b937ee701ac02268 100644
--- a/matlab/setup_stochastic_perfect_foresight_model_solver.m
+++ b/matlab/setup_stochastic_perfect_foresight_model_solver.m
@@ -66,7 +66,7 @@ pfm.i_cols_j = 1:pfm.nd;
 pfm.i_upd = pfm.ny+(1:pfm.periods*pfm.ny);
 pfm.dynamic_model = str2func([DynareModel.fname,'_dynamic']);
 pfm.verbose = DynareOptions.ep.verbosity;
-pfm.maxit_ = DynareOptions.maxit_;
+pfm.maxit_ = DynareOptions.simul.maxit;
 pfm.tolerance = DynareOptions.dynatol.f;
 
 if nargin>3 && DynareOptions.ep.stochastic.order
diff --git a/matlab/sim1.m b/matlab/sim1.m
index f3ca28205fae77d03fd35bb090ae36057e1d2ee6..677bf07d992ae7ee8f25c5f22b9f22c36c29b9f2 100644
--- a/matlab/sim1.m
+++ b/matlab/sim1.m
@@ -82,7 +82,7 @@ res = zeros(periods*ny,1);
 
     
 h1 = clock ;
-for iter = 1:options_.maxit_
+for iter = 1:options_.simul.maxit
     h2 = clock ;
     
     i_rows = 1:ny;
@@ -156,11 +156,11 @@ elseif ~stop
     skipline();
     fprintf('\nSimulation terminated after %d iterations.\n',iter);
     fprintf('Total time of simulation        : %10.3f\n',etime(clock,h1));
-    fprintf('WARNING : maximum number of iterations is reached (modify options_.maxit_).\n') ;
+    fprintf('WARNING : maximum number of iterations is reached (modify options_.simul.maxit).\n') ;
     oo_.deterministic_simulation.status = 0;% more iterations are needed.
     oo_.deterministic_simulation.error = err;
     %oo_.deterministic_simulation.errors = c/abs(err)    
-    oo_.deterministic_simulation.iterations = options_.maxit_;
+    oo_.deterministic_simulation.iterations = options_.simul.maxit;
 end
 disp (['-----------------------------------------------------']) ;
 skipline();
diff --git a/matlab/sim1_lbj.m b/matlab/sim1_lbj.m
index 8222ae4de6ddd00fad537fcc6de1ccbae926f4d6..e2039cc1a9fba9b17774a0e3caf17f26d6c51e4a 100644
--- a/matlab/sim1_lbj.m
+++ b/matlab/sim1_lbj.m
@@ -58,7 +58,7 @@ fprintf('\n') ;
 it_init = M_.maximum_lag+1 ;
 
 h1 = clock ;
-for iter = 1:options_.maxit_
+for iter = 1:options_.simul.maxit
     h2 = clock ;
     
     if options_.terminal_condition == 0
@@ -121,12 +121,12 @@ if ~stop
     fprintf('\n') ;
     disp(['     Total time of simulation        :' num2str(etime(clock,h1))]) ;
     fprintf('\n') ;
-    disp(['WARNING : maximum number of iterations is reached (modify options_.maxit_).']) ;
+    disp(['WARNING : maximum number of iterations is reached (modify options_.simul.maxit).']) ;
     fprintf('\n') ;
     oo_.deterministic_simulation.status = 0;% more iterations are needed.
     oo_.deterministic_simulation.error = err;
     oo_.deterministic_simulation.errors = c/abs(err);    
-    oo_.deterministic_simulation.iterations = options_.maxit_;
+    oo_.deterministic_simulation.iterations = options_.simul.maxit;
 end
 disp (['-----------------------------------------------------']) ;
 
diff --git a/matlab/solve_one_boundary.m b/matlab/solve_one_boundary.m
index 3e882557571ca4d677a8940c3959a7f335bffd7c..21227076a73c9e98b115813bc4da7e98e05372e7 100644
--- a/matlab/solve_one_boundary.m
+++ b/matlab/solve_one_boundary.m
@@ -192,9 +192,9 @@ for it_=start:incr:finish
                         continue;
                     else
                         if(cutoff == 0)
-                            fprintf('Error in simul: Convergence not achieved in block %d, at time %d, after %d iterations.\n Increase "options_.maxit_".\n',Block_Num, it_, iter);
+                            fprintf('Error in simul: Convergence not achieved in block %d, at time %d, after %d iterations.\n Increase "options_.simul.maxit".\n',Block_Num, it_, iter);
                         else
-                            fprintf('Error in simul: Convergence not achieved in block %d, at time %d, after %d iterations.\n Increase "options_.maxit_" or set "cutoff=0" in model options.\n',Block_Num, it_, iter);
+                            fprintf('Error in simul: Convergence not achieved in block %d, at time %d, after %d iterations.\n Increase "options_.simul.maxit" or set "cutoff=0" in model options.\n',Block_Num, it_, iter);
                         end;
                         if(is_dynamic)
                             oo_.deterministic_simulation.status = 0;
@@ -397,9 +397,9 @@ for it_=start:incr:finish
     end
     if cvg==0
         if(cutoff == 0)
-            fprintf('Error in simul: Convergence not achieved in block %d, at time %d, after %d iterations.\n Increase "options_.maxit_\".\n',Block_Num, it_,iter);
+            fprintf('Error in simul: Convergence not achieved in block %d, at time %d, after %d iterations.\n Increase "options_.simul.maxit\".\n',Block_Num, it_,iter);
         else
-            fprintf('Error in simul: Convergence not achieved in block %d, at time %d, after %d iterations.\n Increase "options_.maxit_" or set "cutoff=0" in model options.\n',Block_Num, it_,iter);
+            fprintf('Error in simul: Convergence not achieved in block %d, at time %d, after %d iterations.\n Increase "options_.simul.maxit" or set "cutoff=0" in model options.\n',Block_Num, it_,iter);
         end;
         if(is_dynamic)
             oo_.deterministic_simulation.status = 0;
diff --git a/matlab/solve_perfect_foresight_model.m b/matlab/solve_perfect_foresight_model.m
index 1f4795b00f7c54d1dd2e2798fa754c7cf55ab6a8..4a6464089ea78a35fa8744e8a87c3fa7272a40df 100644
--- a/matlab/solve_perfect_foresight_model.m
+++ b/matlab/solve_perfect_foresight_model.m
@@ -96,7 +96,7 @@ function [flag,endo_simul,err] = solve_perfect_foresight_model(endo_simul,exo_si
             fprintf('\n') ;
             disp(['     Total time of simulation        :' num2str(etime(clock,h1))]) ;
             fprintf('\n') ;
-            disp(['WARNING : maximum number of iterations is reached (modify options_.maxit_).']) ;
+            disp(['WARNING : maximum number of iterations is reached (modify options_.simul.maxit).']) ;
             fprintf('\n') ;
         end
         flag = 1;% more iterations are needed.
diff --git a/matlab/solve_two_boundaries.m b/matlab/solve_two_boundaries.m
index 5e570687ffb50f091760f8bcbe7f9b7b625c0775..5883a8906556a0baa262dd0d5f3ebfb89f0f8c4b 100644
--- a/matlab/solve_two_boundaries.m
+++ b/matlab/solve_two_boundaries.m
@@ -133,9 +133,9 @@ while ~(cvg==1 || iter>maxit_),
                     continue;
                 else
                     if(cutoff == 0)
-                        fprintf('Error in simul: Convergence not achieved in block %d, after %d iterations.\n Increase "options_.maxit_".\n',Block_Num, iter);
+                        fprintf('Error in simul: Convergence not achieved in block %d, after %d iterations.\n Increase "options_.simul.maxit".\n',Block_Num, iter);
                     else
-                        fprintf('Error in simul: Convergence not achieved in block %d, after %d iterations.\n Increase "options_.maxit_" or set "cutoff=0" in model options.\n',Block_Num, iter);
+                        fprintf('Error in simul: Convergence not achieved in block %d, after %d iterations.\n Increase "options_.simul.maxit" or set "cutoff=0" in model options.\n',Block_Num, iter);
                     end;
                     oo.deterministic_simulation.status = 0;
                     oo.deterministic_simulation.error = max_res;
diff --git a/mex/sources/bytecode/bytecode.cc b/mex/sources/bytecode/bytecode.cc
index 018a384b5d8a6b2a3b840abe67ddc39a06d7d30c..0dd0eaf15ea88c061bcd0531fa33dd390151d79d 100644
--- a/mex/sources/bytecode/bytecode.cc
+++ b/mex/sources/bytecode/bytecode.cc
@@ -707,9 +707,9 @@ main(int nrhs, const char *prhs[])
     DYN_MEX_FUNC_ERR_MSG_TXT("verbosity is not a field of options_");
   if (verbose)
     print_it = true;
-  field = mxGetFieldNumber(options_, "maxit_");
+  field = mxGetFieldNumber(options_, "simul.maxit");// Not sure of that...
   if (field < 0)
-    DYN_MEX_FUNC_ERR_MSG_TXT("maxit_ is not a field of options_");
+    DYN_MEX_FUNC_ERR_MSG_TXT("simul.maxit is not a field of options_");
   int maxit_ = int (floor(*(mxGetPr(mxGetFieldByNumber(options_, 0, field)))));
   field = mxGetFieldNumber(options_, "slowc");
   if (field < 0)
diff --git a/mex/sources/bytecode/testing/simulate_debug.m b/mex/sources/bytecode/testing/simulate_debug.m
index 396a558e05db9605230f84e3885c959bdc6bc8db..9384eb7fe9daf8ea26986203162fec8cf1212fb0 100644
--- a/mex/sources/bytecode/testing/simulate_debug.m
+++ b/mex/sources/bytecode/testing/simulate_debug.m
@@ -4,7 +4,7 @@ fid = fopen([M_.fname '_options.txt'],'wt');
 if steady_state~=1
   fprintf(fid,'%d\n',options_.periods);
 end;
-fprintf(fid,'%d\n',options_.maxit_);
+fprintf(fid,'%d\n',options_.simul.maxit);
 fprintf(fid,'%6.20f\n',options_.slowc);
 fprintf(fid,'%6.20f\n',options_.markowitz);
 fprintf(fid,'%6.20f\n',options_.dynatol.f);
diff --git a/preprocessor/DynamicModel.cc b/preprocessor/DynamicModel.cc
index 52eabbede46659a2e60f61460d0670a4295b94a7..d19727fa4678ed89fee5dd8f47b22a9c9e13da70 100644
--- a/preprocessor/DynamicModel.cc
+++ b/preprocessor/DynamicModel.cc
@@ -1889,7 +1889,7 @@ DynamicModel::writeSparseDynamicMFile(const string &dynamic_basename, const stri
                     << "  disp (['MODEL SIMULATION: (method=' mthd ')']) ;" << endl
                     << "  fprintf('\\n') ;" << endl
                     << "  periods=options_.periods;" << endl
-                    << "  maxit_=options_.maxit_;" << endl
+                    << "  maxit_=options_.simul.maxit;" << endl
                     << "  solve_tolf=options_.solve_tolf;" << endl
                     << "  y=oo_.endo_simul';" << endl
                     << "  x=oo_.exo_simul;" << endl;
@@ -1988,7 +1988,7 @@ DynamicModel::writeSparseDynamicMFile(const string &dynamic_basename, const stri
           mDynamicModelFile << "  y = solve_one_boundary('"  << dynamic_basename << "_" <<  block + 1 << "'"
                             <<", y, x, params, steady_state, y_index, " << nze
                             <<", options_.periods, " << blocks_linear[block]
-                            <<", blck_num, y_kmin, options_.maxit_, options_.solve_tolf, options_.slowc, " << cutoff << ", options_.stack_solve_algo, 1, 1, 0);\n";
+                            <<", blck_num, y_kmin, options_.simul.maxit, options_.solve_tolf, options_.slowc, " << cutoff << ", options_.stack_solve_algo, 1, 1, 0);\n";
           mDynamicModelFile << "  tmp = y(:,M_.block_structure.block(" << block + 1 << ").variable);\n";
           mDynamicModelFile << "  if any(isnan(tmp) | isinf(tmp))\n";
           mDynamicModelFile << "    disp(['Inf or Nan value during the resolution of block " << block <<"']);\n";
@@ -2018,7 +2018,7 @@ DynamicModel::writeSparseDynamicMFile(const string &dynamic_basename, const stri
           mDynamicModelFile << "  y = solve_one_boundary('"  << dynamic_basename << "_" <<  block + 1 << "'"
                             <<", y, x, params, steady_state, y_index, " << nze
                             <<", options_.periods, " << blocks_linear[block]
-                            <<", blck_num, y_kmin, options_.maxit_, options_.solve_tolf, options_.slowc, " << cutoff << ", options_.stack_solve_algo, 1, 1, 0);\n";
+                            <<", blck_num, y_kmin, options.simul.maxit, options_.solve_tolf, options_.slowc, " << cutoff << ", options_.stack_solve_algo, 1, 1, 0);\n";
           mDynamicModelFile << "  tmp = y(:,M_.block_structure.block(" << block + 1 << ").variable);\n";
           mDynamicModelFile << "  if any(isnan(tmp) | isinf(tmp))\n";
           mDynamicModelFile << "    disp(['Inf or Nan value during the resolution of block " << block <<"']);\n";
@@ -2048,7 +2048,7 @@ DynamicModel::writeSparseDynamicMFile(const string &dynamic_basename, const stri
                             <<", options_.periods, " << max_leadlag_block[block].first
                             <<", " << max_leadlag_block[block].second
                             <<", " << blocks_linear[block]
-                            <<", blck_num, y_kmin, options_.maxit_, options_.solve_tolf, options_.slowc, " << cutoff << ", options_.stack_solve_algo);\n";
+                            <<", blck_num, y_kmin, options_.simul.maxit, options_.solve_tolf, options_.slowc, " << cutoff << ", options_.stack_solve_algo);\n";
           mDynamicModelFile << "  tmp = y(:,M_.block_structure.block(" << block + 1 << ").variable);\n";
           mDynamicModelFile << "  if any(isnan(tmp) | isinf(tmp))\n";
           mDynamicModelFile << "    disp(['Inf or Nan value during the resolution of block " << block <<"']);\n";
diff --git a/tests/block_bytecode/ireland.mod b/tests/block_bytecode/ireland.mod
index b36f2452cc6bafca3b8c5b0f35c25cbc45521bb6..9404fc11782193a708ab54890a0f8abe85620679 100644
--- a/tests/block_bytecode/ireland.mod
+++ b/tests/block_bytecode/ireland.mod
@@ -60,7 +60,7 @@ k=k+0.000001;
 end;
 
 options_.dynatol.f=1e-12;
-options_.maxit_=5;
+options_.simul.maxit=5;
 options_.slowc=1;
 steady(solve_algo=2);
 
@@ -72,7 +72,7 @@ periods 1;
 values 0.02;
 end;
 
-options_.maxit_=20;
+options_.simul.maxit=20;
 model_info;
 
 simul(periods=2000, stack_solve_algo = 0);
diff --git a/tests/block_bytecode/ls2003.mod b/tests/block_bytecode/ls2003.mod
index e756932cbb1a2316f3bca0ca6e4600dd0f3e89aa..f4fbe7b582a2a006480e5de0d64d978edf8110c7 100644
--- a/tests/block_bytecode/ls2003.mod
+++ b/tests/block_bytecode/ls2003.mod
@@ -63,7 +63,7 @@ var e_ys = 1.89;
 var e_pies = 1.89;
 end;
 
-options_.maxit_=100;
+options_.simul.maxit=100;
 steady(solve_algo = @{solve_algo});
 
 @#if block
diff --git a/tests/ep/burnside.mod b/tests/ep/burnside.mod
index f6f1fb14d099f247421e39e9e3b237692f6ef74e..0bad36d87bcdca847b8e568f9f2d554f8713930d 100644
--- a/tests/ep/burnside.mod
+++ b/tests/ep/burnside.mod
@@ -43,7 +43,7 @@ set_dynare_seed('default');
 stoch_simul(order=2,pruning,irf=0,periods=5000);
 y_perturbation_2_pruning = oo_.endo_simul(1,:)';
 
-options_.maxit_ = 100;
+options_.simul.maxit = 100;
 options_.ep.verbosity = 0;
 options_.ep.stochastic.order = 0;
 options_.ep.stochastic.nodes = 2;
diff --git a/tests/ep/linear.mod b/tests/ep/linear.mod
index afc64ca4c38570d98e9ff07e604ed59d9d3f0d15..5cf8a7a310938d6cf45467d5a6520d2724670899 100644
--- a/tests/ep/linear.mod
+++ b/tests/ep/linear.mod
@@ -26,7 +26,7 @@ end;
 
 steady;
 
-options_.maxit_ = 100;
+options_.simul.maxit = 100;
 options_.ep.verbosity = 0;
 options_.ep.stochastic.status = 0;
 options_.ep.order = 0;
@@ -42,4 +42,4 @@ sts = extended_path([],100);
 
 if max(max(abs(ts-sts))) > 1e-12
    error('extended path algorithm fails in ./tests/ep/linear.mod')
-end
\ No newline at end of file
+end
diff --git a/tests/ep/rbcii.mod b/tests/ep/rbcii.mod
index 881ab03577a1245ddd922daafd0f3b8ec21c7533..02c7cb712f5812f1e7d7237223719ee02dc37682 100644
--- a/tests/ep/rbcii.mod
+++ b/tests/ep/rbcii.mod
@@ -68,7 +68,7 @@ copyfile('rbcii_steady_state.m','rbcii_steadystate2.m');
 
     steady(nocheck);
 
-    options_.maxit_ = 100;
+    options_.simul.maxit = 100;
     options_.ep.verbosity = 0;
     options_.ep.stochastic.order = 0;
     options_.ep.stochastic.nodes = 2;
@@ -91,7 +91,7 @@ copyfile('rbcii_steady_state.m','rbcii_steadystate2.m');
 
     steady;//(nocheck);
 
-    options_.maxit_ = 100;
+    options_.simul.maxit = 100;
 
     simul(periods=4000);