diff --git a/matlab/DsgeSmoother.m b/matlab/DsgeSmoother.m
index 31b003ca3d87a3cd86bb5b88942cb7b2e2e042b6..8b3063f6fe906d30895c4d65ae37eb8749dcbbad 100644
--- a/matlab/DsgeSmoother.m
+++ b/matlab/DsgeSmoother.m
@@ -1,4 +1,4 @@
-function [alphahat,etahat,epsilonhat,ahat,SteadyState,trend_coeff,aK,T,R,P,PK,decomp,trend_addition,state_uncertainty,M_,oo_,options_,bayestopt_] = DsgeSmoother(xparam1,gend,Y,data_index,missing_value,M_,oo_,options_,bayestopt_,estim_params_)
+function [alphahat,etahat,epsilonhat,ahat,SteadyState,trend_coeff,aK,T,R,P,PK,decomp,trend_addition,state_uncertainty,M_,oo_,bayestopt_] = DsgeSmoother(xparam1,gend,Y,data_index,missing_value,M_,oo_,options_,bayestopt_,estim_params_)
 % Estimation of the smoothed variables and innovations.
 %
 % INPUTS
@@ -34,7 +34,6 @@ function [alphahat,etahat,epsilonhat,ahat,SteadyState,trend_coeff,aK,T,R,P,PK,de
 %                                   about the smoothed state (decision-rule order)
 %   o M_            [structure] decribing the model
 %   o oo_           [structure] storing the results
-%   o options_      [structure] describing the options
 %   o bayestopt_    [structure] describing the priors
 %
 % Notes:
@@ -105,14 +104,14 @@ if ~options_.smoother_redux
     oo_.dr.restrict_var_list = bayestopt_.smoother_var_list;
     oo_.dr.restrict_columns = bayestopt_.smoother_restrict_columns;
     
-    [T,R,SteadyState,info,M_,options_,oo_] = dynare_resolve(M_,options_,oo_);
+    [T,R,SteadyState,info,M_,oo_] = dynare_resolve(M_,options_,oo_);
     
     %get location of observed variables and requested smoothed variables in
     %decision rules
     bayestopt_.mf = bayestopt_.smoother_var_list(bayestopt_.smoother_mf);
     
 else
-    [T,R,SteadyState,info,M_,options_,oo_] = dynare_resolve(M_,options_,oo_,'restrict');
+    [T,R,SteadyState,info,M_,oo_] = dynare_resolve(M_,options_,oo_,'restrict');
     bayestopt_.mf = bayestopt_.mf1;
 end
 
diff --git a/matlab/PosteriorIRF_core1.m b/matlab/PosteriorIRF_core1.m
index 3311c138defbae3e4b730af5b1145df844508e90..fd0b7cea317fbac30852b21e49b270c1692233bd 100644
--- a/matlab/PosteriorIRF_core1.m
+++ b/matlab/PosteriorIRF_core1.m
@@ -145,7 +145,7 @@ while fpar<B
     end
     stock_param(irun2,:) = deep;
     set_parameters(deep);
-    [dr,info,M_,options_,oo_] =compute_decision_rules(M_,options_,oo_);
+    [dr,info,M_,oo_] =compute_decision_rules(M_,options_,oo_);
     oo_.dr = dr;
     if info(1)
         nosaddle = nosaddle + 1;
diff --git a/matlab/check.m b/matlab/check.m
index 6b5d2388964958e0e76e8111808bb431548108e6..5d99a0b5f18f94259bcefa4d903413dfabdbf0e6 100644
--- a/matlab/check.m
+++ b/matlab/check.m
@@ -42,7 +42,7 @@ end
 
 oo.dr=set_state_space(oo.dr,M,options);
 
-[dr,info,M,options,~] = resol(1,M,options,oo);
+[dr,info,M,~] = resol(1,M,options,oo);
 
 if info(1) ~= 0 && info(1) ~= 3 && info(1) ~= 4
     print_info(info, 0, options);
diff --git a/matlab/cli/prior.m b/matlab/cli/prior.m
index 95401ba34e11e0df888577fadb4825487fc8d878..3ac6bcaf3976ef98c70810a8fd10c51ccc33da85 100644
--- a/matlab/cli/prior.m
+++ b/matlab/cli/prior.m
@@ -137,7 +137,7 @@ if ismember('moments', varargin) % Prior simulations (2nd order moments).
     oo__ = oo_;
     oo__.dr = set_state_space(oo__.dr, Model, options_);
     % Solve model
-    [T,R,~,info,Model , options__ , oo__] = dynare_resolve(Model , options_ ,oo__,'restrict');
+    [T,R,~,info,Model , oo__] = dynare_resolve(Model , options_ ,oo__,'restrict');
     if ~info(1)
         info=endogenous_prior_restrictions(T,R,Model , options__ , oo__);
     end
diff --git a/matlab/compute_decision_rules.m b/matlab/compute_decision_rules.m
index 4e7d86be9fa34d1a044e9368597c22f7e305ddf1..39674027b14144fa369f28860890426c5706c6df 100644
--- a/matlab/compute_decision_rules.m
+++ b/matlab/compute_decision_rules.m
@@ -1,4 +1,4 @@
-function [dr,info,M_,options_,oo_] =compute_decision_rules(M_,options_,oo_)
+function [dr,info,M_,oo_] =compute_decision_rules(M_,options_,oo_)
 % function [dr,info,M_,options_,oo_] =compute_decision_rules(M_,options_,oo_)
 % INPUTS
 % - M_            [structure]     Matlab's structure describing the model (M_).
@@ -9,7 +9,6 @@ function [dr,info,M_,options_,oo_] =compute_decision_rules(M_,options_,oo_)
 % - dr            [structure]     Reduced form model.
 % - info          [integer]       scalar or vector, error code.
 % - M_            [structure]     Matlab's structure describing the model (M_).
-% - options_      [structure]     Matlab's structure describing the current options (options_).
 % - oo_           [structure]     Matlab's structure containing the results (oo_).
 
 % Copyright (C) 2020 Dynare Team
@@ -30,7 +29,7 @@ function [dr,info,M_,options_,oo_] =compute_decision_rules(M_,options_,oo_)
 % along with Dynare.  If not, see <https://www.gnu.org/licenses/>.
 
 if options_.discretionary_policy
-    [dr,info,M_,options_,oo_] = discretionary_policy_1(options_.instruments,M_,options_,oo_);
+    [dr,info,M_,oo_] = discretionary_policy_1(options_.instruments,M_,options_,oo_);
 else
-    [dr,info,M_,options_,oo_] = resol(0,M_,options_,oo_);
+    [dr,info,M_,oo_] = resol(0,M_,options_,oo_);
 end
diff --git a/matlab/discretionary_policy/discretionary_policy_1.m b/matlab/discretionary_policy/discretionary_policy_1.m
index fbecac43cdc6304c06170868f0522561f4449976..f909a99b80305c4ea9f41695c52b28de7cd7c03e 100644
--- a/matlab/discretionary_policy/discretionary_policy_1.m
+++ b/matlab/discretionary_policy/discretionary_policy_1.m
@@ -1,4 +1,4 @@
-function [dr, info, M_, options_, oo_]=discretionary_policy_1(Instruments, M_, options_, oo_)
+function [dr, info, M_, oo_]=discretionary_policy_1(Instruments, M_, options_, oo_)
 % Higher-level function for solving discretionary optimal policy
 % INPUTS
 % - Instruments   [cell]          array containing instrument names
@@ -10,7 +10,6 @@ function [dr, info, M_, options_, oo_]=discretionary_policy_1(Instruments, M_, o
 % - dr            [structure]     Reduced form model.
 % - info          [integer]       scalar or vector, error code.
 % - M_            [structure]     Matlab's structure describing the model (M_).
-% - options_      [structure]     Matlab's structure describing the current options (options_).
 % - oo_           [structure]     Matlab's structure containing the results (oo_).
 
 % Copyright (C) 2007-2020 Dynare Team
diff --git a/matlab/dr_block.m b/matlab/dr_block.m
index f9efe2609dbeb820b21b5179b925369785e9f010..d5689682920c6e839670e7763ba12eeb4d49d05f 100644
--- a/matlab/dr_block.m
+++ b/matlab/dr_block.m
@@ -1,5 +1,5 @@
-function [dr,info,M_,options_,oo_] = dr_block(dr,task,M_,options_,oo_,varargin)
-% function [dr,info,M_,options_,oo_] = dr_block(dr,task,M_,options_,oo_,varargin)
+function [dr,info,M_,oo_] = dr_block(dr,task,M_,options_,oo_,varargin)
+% function [dr,info,M_,oo_] = dr_block(dr,task,M_,options_,oo_,varargin)
 % computes the reduced form solution of a rational expectations block-decomposed model
 % (first order approximation of the stochastic model around the deterministic steady state).
 %
@@ -26,7 +26,6 @@ function [dr,info,M_,options_,oo_] = dr_block(dr,task,M_,options_,oo_,varargin)
 %                                 info=5: BK rank condition not satisfied.
 %                                 info=6: The jacobian matrix evaluated at the steady state is complex.
 %   M_         [matlab structure]
-%   options_   [matlab structure]
 %   oo_        [matlab structure]
 %
 % ALGORITHM
diff --git a/matlab/dsge_likelihood.m b/matlab/dsge_likelihood.m
index f83c240b071b063a059ece0ba7b1aa7335b59b2c..76f82531181a72edf9a7a7382127996069a61450 100644
--- a/matlab/dsge_likelihood.m
+++ b/matlab/dsge_likelihood.m
@@ -185,7 +185,7 @@ end
 %------------------------------------------------------------------------------
 
 % Linearize the model around the deterministic steady state and extract the matrices of the state equation (T and R).
-[T,R,SteadyState,info,Model,DynareOptions,DynareResults] = dynare_resolve(Model,DynareOptions,DynareResults,'restrict');
+[T,R,SteadyState,info,Model,DynareResults] = dynare_resolve(Model,DynareOptions,DynareResults,'restrict');
 
 % Return, with endogenous penalty when possible, if dynare_resolve issues an error code (defined in resol).
 if info(1)
@@ -467,7 +467,7 @@ if analytic_derivation
     AHess = [];
     iv = DynareResults.dr.restrict_var_list;
     if nargin<10 || isempty(derivatives_info)
-        [A,B,nou,nou,Model,DynareOptions,DynareResults] = dynare_resolve(Model,DynareOptions,DynareResults);
+        [A,B,nou,nou,Model,DynareResults] = dynare_resolve(Model,DynareOptions,DynareResults);
         if ~isempty(EstimatedParameters.var_exo)
             indexo=EstimatedParameters.var_exo(:,1);
         else
diff --git a/matlab/dsge_simulated_theoretical_conditional_variance_decomposition.m b/matlab/dsge_simulated_theoretical_conditional_variance_decomposition.m
index f52af0bc694a6541f156b28e9be33d59d427031f..df9d7332216b91a167841abd95e2349ffe1fba19 100644
--- a/matlab/dsge_simulated_theoretical_conditional_variance_decomposition.m
+++ b/matlab/dsge_simulated_theoretical_conditional_variance_decomposition.m
@@ -142,7 +142,7 @@ for file = 1:NumberOfDrawsFiles
             dr = temp.pdraws{linee,2};
         else
             M_=set_parameters_locally(M_,temp.pdraws{linee,1});
-			[dr,info,M_,options_,oo_] = compute_decision_rules(M_,options_,oo_)
+			[dr,info,M_,oo_] = compute_decision_rules(M_,options_,oo_)
         end
         if first_call
             endo_nbr = M_.endo_nbr;
diff --git a/matlab/dsge_simulated_theoretical_correlation.m b/matlab/dsge_simulated_theoretical_correlation.m
index c5c8f4fd8d9dc9255b2226070b2dc84ec2b811cd..4082bfb0f0f5dac209f57a747a2967e1a59e51d6 100644
--- a/matlab/dsge_simulated_theoretical_correlation.m
+++ b/matlab/dsge_simulated_theoretical_correlation.m
@@ -115,7 +115,7 @@ for file = 1:NumberOfDrawsFiles
             dr = temp.pdraws{linee,2};
         else
             M_=set_parameters_locally(M_,temp.pdraws{linee,1});
-            [dr,info,M_,options_,oo_] = compute_decision_rules(M_,options_,oo_);
+            [dr,info,M_,oo_] = compute_decision_rules(M_,options_,oo_);
         end
         if ~options_.pruning
             tmp = th_autocovariances(dr,ivar,M_,options_,nodecomposition);
diff --git a/matlab/dsge_simulated_theoretical_covariance.m b/matlab/dsge_simulated_theoretical_covariance.m
index 9c208c3b00068087951bd8b3306a3343f8fa1ec0..65b120d23410798a7787d62ac3435282026a2ef1 100644
--- a/matlab/dsge_simulated_theoretical_covariance.m
+++ b/matlab/dsge_simulated_theoretical_covariance.m
@@ -113,7 +113,7 @@ for file = 1:NumberOfDrawsFiles
             dr = temp.pdraws{linee,2};
         else
             M_=set_parameters_locally(M_,temp.pdraws{linee,1});
-            [dr,info,M_,options_,oo_] = compute_decision_rules(M_,options_,oo_);
+            [dr,info,M_,oo_] = compute_decision_rules(M_,options_,oo_);
         end
         if ~options_.pruning
             tmp = th_autocovariances(dr,ivar,M_,options_,nodecomposition);
diff --git a/matlab/dsge_simulated_theoretical_variance_decomposition.m b/matlab/dsge_simulated_theoretical_variance_decomposition.m
index c44cad61f230c6e690930d0386f9595760dd6652..87af08ff6a4abd9435cef35d2dbe4bb09e51b787 100644
--- a/matlab/dsge_simulated_theoretical_variance_decomposition.m
+++ b/matlab/dsge_simulated_theoretical_variance_decomposition.m
@@ -141,7 +141,7 @@ for file = 1:NumberOfDrawsFiles
             dr = temp.pdraws{linee,2};
         else
             M_=set_parameters_locally(M_,temp.pdraws{linee,1});
-            [dr,info,M_,options_,oo_] = compute_decision_rules(M_,options_,oo_);
+            [dr,info,M_,oo_] = compute_decision_rules(M_,options_,oo_);
         end
         if file==1 && linee==1
             [tmp, stationary_vars] = th_autocovariances(dr,ivar,M_,options_,nodecomposition);
diff --git a/matlab/dsge_var_likelihood.m b/matlab/dsge_var_likelihood.m
index 70601b32bfc0c1452671fa55a1091ba73a81b7fe..28412b279abb43d76a9c6171e63c26221fee402a 100644
--- a/matlab/dsge_var_likelihood.m
+++ b/matlab/dsge_var_likelihood.m
@@ -133,7 +133,7 @@ end
 
 % Solve the Dsge model and get the matrices of the reduced form solution. T and R are the matrices of the
 % state equation
-[T,R,SteadyState,info,Model,DynareOptions,DynareResults] = dynare_resolve(Model,DynareOptions,DynareResults,'restrict');
+[T,R,SteadyState,info,Model,DynareResults] = dynare_resolve(Model,DynareOptions,DynareResults,'restrict');
 
 % Return, with endogenous penalty when possible, if dynare_resolve issues an error code (defined in resol).
 if info(1)
diff --git a/matlab/dynare_estimation_1.m b/matlab/dynare_estimation_1.m
index 38fb563fa6089ee395d6d4162a5d28641a36dbab..0efdf40c68a95aed14a181b2bd12a9523132e58f 100644
--- a/matlab/dynare_estimation_1.m
+++ b/matlab/dynare_estimation_1.m
@@ -176,7 +176,7 @@ end
 if isequal(options_.mode_compute,0) && isempty(options_.mode_file) && options_.mh_posterior_mode_estimation==0
     if options_.order==1 && ~options_.particle.status
         if options_.smoother
-            [atT,innov,measurement_error,updated_variables,ys,trend_coeff,aK,T,R,P,PK,decomp,Trend,state_uncertainty,M_,oo_,options_,bayestopt_] = DsgeSmoother(xparam1,gend,transpose(data),data_index,missing_value,M_,oo_,options_,bayestopt_,estim_params_);
+            [atT,innov,measurement_error,updated_variables,ys,trend_coeff,aK,T,R,P,PK,decomp,Trend,state_uncertainty,M_,oo_,bayestopt_] = DsgeSmoother(xparam1,gend,transpose(data),data_index,missing_value,M_,oo_,options_,bayestopt_,estim_params_);
             [oo_]=store_smoother_results(M_,oo_,options_,bayestopt_,dataset_,dataset_info,atT,innov,measurement_error,updated_variables,ys,trend_coeff,aK,P,PK,decomp,Trend,state_uncertainty);
             if options_.forecast > 0
                 oo_.forecast = dyn_forecast(var_list_,M_,options_,oo_,'smoother',dataset_info);
@@ -554,7 +554,7 @@ end
 if (~((any(bayestopt_.pshape > 0) && options_.mh_replic) || (any(bayestopt_.pshape> 0) && options_.load_mh_file)) ...
     || ~options_.smoother ) && ~options_.partial_information  % to be fixed
     %% ML estimation, or posterior mode without Metropolis-Hastings or Metropolis without Bayesian smoothes variables
-    [atT,innov,measurement_error,updated_variables,ys,trend_coeff,aK,T,R,P,PK,decomp,Trend,state_uncertainty,M_,oo_,options_,bayestopt_] = DsgeSmoother(xparam1,dataset_.nobs,transpose(dataset_.data),dataset_info.missing.aindex,dataset_info.missing.state,M_,oo_,options_,bayestopt_,estim_params_);
+    [atT,innov,measurement_error,updated_variables,ys,trend_coeff,aK,T,R,P,PK,decomp,Trend,state_uncertainty,M_,oo_,bayestopt_] = DsgeSmoother(xparam1,dataset_.nobs,transpose(dataset_.data),dataset_info.missing.aindex,dataset_info.missing.state,M_,oo_,options_,bayestopt_,estim_params_);
     [oo_,yf]=store_smoother_results(M_,oo_,options_,bayestopt_,dataset_,dataset_info,atT,innov,measurement_error,updated_variables,ys,trend_coeff,aK,P,PK,decomp,Trend,state_uncertainty);
 
     if ~options_.nograph
diff --git a/matlab/dynare_resolve.m b/matlab/dynare_resolve.m
index c0d88de978cfd91b84db372a603480fbab34306a..665245e804f0314354e0b7bda25d51ac7b3d2bb2 100644
--- a/matlab/dynare_resolve.m
+++ b/matlab/dynare_resolve.m
@@ -1,4 +1,4 @@
-function [A,B,ys,info,M_,options_,oo_] = dynare_resolve(M_,options_,oo_,mode)
+function [A,B,ys,info,M_,oo_] = dynare_resolve(M_,options_,oo_,mode)
 % function [A,B,ys,info,M_,options_,oo_] = dynare_resolve(M_,options_,oo_,mode)
 % Computes the linear approximation and the matrices A and B of the transition equation.
 %
@@ -14,7 +14,6 @@ function [A,B,ys,info,M_,options_,oo_] = dynare_resolve(M_,options_,oo_,mode)
 % - ys                  [double]        vector of steady state values
 % - info                [double]        4 by 1 vector with exit flag and information
 % - M_                  [structure]     Matlab's structure describing the model
-% - options_            [structure]     Matlab's structure containing the options
 % - oo_                 [structure]     Matlab's structure containing the results
 
 % Copyright (C) 2001-2021 Dynare Team
@@ -34,7 +33,7 @@ function [A,B,ys,info,M_,options_,oo_] = dynare_resolve(M_,options_,oo_,mode)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <https://www.gnu.org/licenses/>.
 
-[dr,info,M_,options_,oo_] =compute_decision_rules(M_,options_,oo_);
+[dr,info,M_,oo_] =compute_decision_rules(M_,options_,oo_);
 
 if info(1) > 0
     A = [];
diff --git a/matlab/dynare_sensitivity.m b/matlab/dynare_sensitivity.m
index 5d93b7714f0f75e4623c28ab04cc5111122b666f..d4793a04dd9e7906e16b70a08a82e6ef54befd73 100644
--- a/matlab/dynare_sensitivity.m
+++ b/matlab/dynare_sensitivity.m
@@ -137,7 +137,7 @@ if M_.exo_nbr==0
     error('dynare_sensitivity does not support having no varexo in the model. As a workaround you could define a dummy exogenous variable.')
 end
 
-[make,my,day,punk,M_,options_,oo_] = dynare_resolve(M_,options_,oo_);
+[make,my,day,punk,M_,oo_] = dynare_resolve(M_,options_,oo_);
 
 options_gsa = set_default_option(options_gsa,'identification',0);
 if options_gsa.identification
diff --git a/matlab/endogenous_prior_restrictions.m b/matlab/endogenous_prior_restrictions.m
index f9cb218fe6b1b3e274afee0088a3329cfdf6f4bb..0f0441b1c9af132fb502d4c03791aac210040417 100644
--- a/matlab/endogenous_prior_restrictions.m
+++ b/matlab/endogenous_prior_restrictions.m
@@ -49,7 +49,7 @@ if ~isempty(endo_prior_restrictions.irf)
     end
     varlist = Model.endo_names(DynareResults.dr.order_var);
     if isempty(T)
-        [T,R,SteadyState,infox,Model,DynareOptions,DynareResults] = dynare_resolve(Model,DynareOptions,DynareResults);
+        [T,R,SteadyState,infox,Model,DynareResults] = dynare_resolve(Model,DynareOptions,DynareResults);
     else % check if T and R are given in the restricted form!!!
         if size(T,1)<length(varlist)
             varlist = varlist(DynareResults.dr.restrict_var_list);
@@ -63,7 +63,7 @@ if ~isempty(endo_prior_restrictions.irf)
         end
         if ~varlistok
             varlist = Model.endo_names(DynareResults.dr.order_var);
-            [T,R,SteadyState,infox,Model,DynareOptions,DynareResults] = dynare_resolve(Model,DynareOptions,DynareResults);
+            [T,R,SteadyState,infox,Model,DynareResults] = dynare_resolve(Model,DynareOptions,DynareResults);
         end
     end
     NT=1;
diff --git a/matlab/ep/extended_path_initialization.m b/matlab/ep/extended_path_initialization.m
index 9a1b85e47cbdff093b875d3220392ee81cce152f..3946a543a3331b6a33092d436a903f69d1bca0bc 100644
--- a/matlab/ep/extended_path_initialization.m
+++ b/matlab/ep/extended_path_initialization.m
@@ -78,7 +78,7 @@ dr = struct();
 if ep.init
     DynareOptions.order = 1;
     DynareResults.dr=set_state_space(dr,DynareModel,DynareOptions);
-    [dr,Info,DynareModel,DynareOptions,DynareResults] = resol(0,DynareModel,DynareOptions,DynareResults);
+    [dr,Info,DynareResults] = resol(0,DynareModel,DynareOptions,DynareResults);
 end
 
 % Do not use a minimal number of perdiods for the perfect foresight solver (with bytecode and blocks)
diff --git a/matlab/evaluate_smoother.m b/matlab/evaluate_smoother.m
index b0ad84864f0ec2569f926d8bc7f0b6086604b37b..699a590f87bbda61c4a4f73fe936da669cb1b884 100644
--- a/matlab/evaluate_smoother.m
+++ b/matlab/evaluate_smoother.m
@@ -101,7 +101,7 @@ if ischar(parameters)
     end
 end
 
-[atT,innov,measurement_error,updated_variables,ys,trend_coeff,aK,T,R,P,PK,decomp,Trend,state_uncertainty,M_,oo_,options_,bayestopt_] = ...
+[atT,innov,measurement_error,updated_variables,ys,trend_coeff,aK,T,R,P,PK,decomp,Trend,state_uncertainty,M_,oo_,bayestopt_] = ...
     DsgeSmoother(parameters,dataset_.nobs,transpose(dataset_.data),dataset_info.missing.aindex,dataset_info.missing.state,M_,oo_,options_,bayestopt_,estim_params_);
 [oo_]=store_smoother_results(M_,oo_,options_,bayestopt_,dataset_,dataset_info,atT,innov,measurement_error,updated_variables,ys,trend_coeff,aK,P,PK,decomp,Trend,state_uncertainty);
 
diff --git a/matlab/get_perturbation_params_derivs_numerical_objective.m b/matlab/get_perturbation_params_derivs_numerical_objective.m
index da0b80e032c64fa21f182928d11595f37494b220..21ab7d0d5e1cb69db3aa999900c9c729d85f4e2d 100644
--- a/matlab/get_perturbation_params_derivs_numerical_objective.m
+++ b/matlab/get_perturbation_params_derivs_numerical_objective.m
@@ -51,7 +51,7 @@ function [out,info] = get_perturbation_params_derivs_numerical_objective(params,
 
 %% Update stderr, corr and model parameters and compute perturbation approximation and steady state with updated parameters
 M = set_all_parameters(params,estim_params,M);
-[~,info,M,options,oo] = compute_decision_rules(M,options,oo);
+[~,info,M,oo] = compute_decision_rules(M,options,oo);
 Sigma_e = M.Sigma_e;
 
 if info(1) > 0
diff --git a/matlab/gsa/map_calibration.m b/matlab/gsa/map_calibration.m
index 233f5d897ce9e85dc92989287eed72a2ab8bb578..1b5c66e5eda6f41b0e8d221b87a1501c86349948 100644
--- a/matlab/gsa/map_calibration.m
+++ b/matlab/gsa/map_calibration.m
@@ -102,9 +102,9 @@ if init
     for j=1:Nsam
         Model = set_all_parameters(lpmat(j,:)',EstimatedParameters,Model);
         if nbr_moment_restrictions
-            [Tt,Rr,SteadyState,info,Model,DynareOptions,DynareResults] = dynare_resolve(Model,DynareOptions,DynareResults);
+            [Tt,Rr,SteadyState,info,Model,DynareResults] = dynare_resolve(Model,DynareOptions,DynareResults);
         else
-            [Tt,Rr,SteadyState,info,Model,DynareOptions,DynareResults] = dynare_resolve(Model,DynareOptions,DynareResults,'restrict');
+            [Tt,Rr,SteadyState,info,Model,DynareResults] = dynare_resolve(Model,DynareOptions,DynareResults,'restrict');
         end
         if info(1)==0
             [info, info_irf, info_moment, data_irf, data_moment]=endogenous_prior_restrictions(Tt,Rr,Model,DynareOptions,DynareResults);
diff --git a/matlab/gsa/stab_map_.m b/matlab/gsa/stab_map_.m
index 4677fcba48fd5fa9a5daf60c15138196903e9f87..766963a05932e77641a019d37a457624b2fc7de4 100644
--- a/matlab/gsa/stab_map_.m
+++ b/matlab/gsa/stab_map_.m
@@ -310,9 +310,9 @@ if fload==0
         %try stoch_simul([]);
         try
             if ~ isempty(options_.endogenous_prior_restrictions.moment)
-                [Tt,Rr,SteadyState,info,M_,options_,oo_] = dynare_resolve(M_,options_,oo_);
+                [Tt,Rr,SteadyState,info,M_,oo_] = dynare_resolve(M_,options_,oo_);
             else
-                [Tt,Rr,SteadyState,info,M_,options_,oo_] = dynare_resolve(M_,options_,oo_,'restrict');
+                [Tt,Rr,SteadyState,info,M_,oo_] = dynare_resolve(M_,options_,oo_,'restrict');
             end
             infox(j,1)=info(1);
             if infox(j,1)==0 && ~exist('T','var')
@@ -681,7 +681,7 @@ if length(iunstable)>0 || length(iwrong)>0
         end
 
         M_ = set_all_parameters(x0,estim_params_,M_);
-        [oo_.dr,info,M_,options_,oo_] = resol(0,M_,options_,oo_);
+        [oo_.dr,info,M_,oo_] = resol(0,M_,options_,oo_);
         %     stoch_simul([]);
     else
         disp('All parameter values in the specified ranges are not acceptable!')
diff --git a/matlab/identification_analysis.m b/matlab/identification_analysis.m
index ed206a443bf2a6d629b6017b6a560704fc0bc1fe..fd6c2fef4039679b25b8160d8e5ab85a0d189fa4 100644
--- a/matlab/identification_analysis.m
+++ b/matlab/identification_analysis.m
@@ -133,7 +133,7 @@ no_identification_minimal     = options_ident.no_identification_minimal;
 no_identification_spectrum    = options_ident.no_identification_spectrum;
 
 %Compute linear approximation and fill dr structure
-[oo_.dr,info,M_,options_,oo_] = compute_decision_rules(M_,options_,oo_);
+[oo_.dr,info,M_,oo_] = compute_decision_rules(M_,options_,oo_);
 
 if info(1) == 0 %no errors in solution
     % Compute parameter Jacobians for identification analysis
diff --git a/matlab/identification_numerical_objective.m b/matlab/identification_numerical_objective.m
index 20af6d528a0af275bdbf261558265b06f5b9528e..c889e7fea43b5c4439b79224a0ca72d209b9d789 100644
--- a/matlab/identification_numerical_objective.m
+++ b/matlab/identification_numerical_objective.m
@@ -76,7 +76,7 @@ else
 end
 
 %% compute Kalman transition matrices and steady state with updated parameters
-[~,info,M,options,oo] = compute_decision_rules(M,options,oo);
+[~,info,M,oo] = compute_decision_rules(M,options,oo);
 options = rmfield(options,'options_ident');
 pruned = pruned_state_space_system(M, options, oo.dr, indvar, nlags, useautocorr, 0);
 
diff --git a/matlab/imcforecast.m b/matlab/imcforecast.m
index 564420134553ec5239d16b2f69b48ec24c90da48..814672f001eb1afd98c92faff3523be97db1e155 100644
--- a/matlab/imcforecast.m
+++ b/matlab/imcforecast.m
@@ -126,7 +126,7 @@ if estimated_model
     qz_criterium_old=options_.qz_criterium;
     options_=select_qz_criterium_value(options_);
     options_smoothed_state_uncertainty_old = options_.smoothed_state_uncertainty;
-    [atT, ~, ~, ~,ys, ~, ~, ~, ~, ~, ~, ~, ~, ~,M_,oo_,options_,bayestopt_] = ...
+    [atT, ~, ~, ~,ys, ~, ~, ~, ~, ~, ~, ~, ~, ~,M_,oo_,bayestopt_] = ...
         DsgeSmoother(xparam, gend, data, data_index, missing_value, M_, oo_, options_, bayestopt_, estim_params_);
     options_.smoothed_state_uncertainty = options_smoothed_state_uncertainty_old;
     %get constant part
@@ -171,7 +171,7 @@ if options_.logged_steady_state %if steady state was previously logged, undo thi
     options_.logged_steady_state=0;
 end
 
-[T, R, ys, ~, M_, options_, oo_] = dynare_resolve(M_, options_, oo_);
+[T, R, ys, ~, M_, oo_] = dynare_resolve(M_, options_, oo_);
 
 if options_.loglinear && isfield(oo_.dr,'ys') && options_.logged_steady_state==0 %log steady state
     oo_.dr.ys=log_variable(1:M_.endo_nbr,oo_.dr.ys,M_);
diff --git a/matlab/method_of_moments/method_of_moments_objective_function.m b/matlab/method_of_moments/method_of_moments_objective_function.m
index cd9767c8685840e0e57173d6e14ee4bc99d0ba01..cb069ef1820b40aba1aad04a8c778f8ec9fffa5f 100644
--- a/matlab/method_of_moments/method_of_moments_objective_function.m
+++ b/matlab/method_of_moments/method_of_moments_objective_function.m
@@ -96,7 +96,7 @@ end
 %--------------------------------------------------------------------------
 
 % Compute linear approximation around the deterministic steady state
-[dr, info, M_, options_mom_, oo_] = resol(0, M_, options_mom_, oo_);
+[dr, info, M_, oo_] = resol(0, M_, options_mom_, oo_);
 
 % Return, with endogenous penalty when possible, if resol issues an error code
 if info(1)
diff --git a/matlab/minus_logged_prior_density.m b/matlab/minus_logged_prior_density.m
index 27e7828937ae3b2f5725121abff5d17833de5863..f3c7f6e528abf8a762f0a02a7910ea7627d0bb4a 100644
--- a/matlab/minus_logged_prior_density.m
+++ b/matlab/minus_logged_prior_density.m
@@ -122,7 +122,7 @@ end
 %-----------------------------
 
 M_ = set_all_parameters(xparams,EstimatedParams,DynareModel);
-[dr,info,DynareModel,DynareOptions,DynareResults] = resol(0,DynareModel,DynareOptions,DynareResults);
+[dr,info,DynareModel,DynareResults] = resol(0,DynareModel,DynareOptions,DynareResults);
 
 % Return, with endogenous penalty when possible, if dynare_resolve issues an error code (defined in resol).
 if info(1)
diff --git a/matlab/non_linear_dsge_likelihood.m b/matlab/non_linear_dsge_likelihood.m
index 1fc2ebad9dacc0d32f3b9521caaa23b769f80609..965f09f6b86ba5d25ae87787b5aeb2bdafd755b6 100644
--- a/matlab/non_linear_dsge_likelihood.m
+++ b/matlab/non_linear_dsge_likelihood.m
@@ -80,7 +80,7 @@ end
 %------------------------------------------------------------------------------
 
 % Linearize the model around the deterministic sdteadystate and extract the matrices of the state equation (T and R).
-[dr, info, Model, DynareOptions, DynareResults] = resol(0, Model, DynareOptions, DynareResults);
+[dr, info, Model, DynareResults] = resol(0, Model, DynareOptions, DynareResults);
 
 if info(1)
     if info(1) == 3 || info(1) == 4 || info(1) == 5 || info(1)==6 ||info(1) == 19 || ...
diff --git a/matlab/optimize_prior.m b/matlab/optimize_prior.m
index e1790b6584829d009d8fcb404afc126f57f29f52..23a185c9991bf03d70b90c428b1a109409cbfb01 100644
--- a/matlab/optimize_prior.m
+++ b/matlab/optimize_prior.m
@@ -29,7 +29,7 @@ while look_for_admissible_initial_condition
     xinit = xparam1+scale*randn(size(xparam1));
     if all(xinit(:)>BayesInfo.p3) && all(xinit(:)<BayesInfo.p4)
         ModelInfo = set_all_parameters(xinit,EstimationInfo,ModelInfo);
-        [dr,INFO,ModelInfo,DynareOptions,DynareResults] = resol(0,ModelInfo,DynareOptions,DynareResults);
+        [dr,INFO,ModelInfo,DynareResults] = resol(0,ModelInfo,DynareOptions,DynareResults);
         if ~INFO(1)
             look_for_admissible_initial_condition = 0;
         end
diff --git a/matlab/osr1.m b/matlab/osr1.m
index fbb87dc935e0a0959f02be6c2595845d208b04f1..4ccbbdb16954095e14d6c9ebf12e5d965dc3eb8c 100644
--- a/matlab/osr1.m
+++ b/matlab/osr1.m
@@ -143,7 +143,7 @@ if ~options_.noprint
     fprintf('Objective function : %16.6g\n\n',f);
     skipline()
 end
-[oo_.dr,info,M_,options_,oo_] = resol(0,M_,options_,oo_);
+[oo_.dr,info,M_,oo_] = resol(0,M_,options_,oo_);
 if ~info
     osr_res.error_indicator=0;
 end
\ No newline at end of file
diff --git a/matlab/osr_obj.m b/matlab/osr_obj.m
index 820e640b35f8aa235377278418931b04ddd8b2ca..694f25f29d5b0bd34dbf4769faef551ed031978f 100644
--- a/matlab/osr_obj.m
+++ b/matlab/osr_obj.m
@@ -47,7 +47,7 @@ M_.params(i_params) = x;
 
 % don't change below until the part where the loss function is computed
 it_ = M_.maximum_lag+1;
-[dr,info,M_,options_,oo_] = resol(0,M_,options_,oo_);
+[dr,info,M_,oo_] = resol(0,M_,options_,oo_);
 
 if info(1)
     if info(1) == 3 || info(1) == 4 || info(1) == 5 || info(1)==6 ||info(1) == 19 ||...
diff --git a/matlab/particles b/matlab/particles
index a5c2c4af4b4aeeb9f4a51860c244d790dac3b8b5..1451bf64a2de2f3e8c78cb91bf4e045732f337ab 160000
--- a/matlab/particles
+++ b/matlab/particles
@@ -1 +1 @@
-Subproject commit a5c2c4af4b4aeeb9f4a51860c244d790dac3b8b5
+Subproject commit 1451bf64a2de2f3e8c78cb91bf4e045732f337ab
diff --git a/matlab/perfect-foresight-models/det_cond_forecast.m b/matlab/perfect-foresight-models/det_cond_forecast.m
index 126dc13ceb3e7c06263771c5ae416a87bbb88cda..41e048474760b02d635e1d31dc070c51fc67fb14 100644
--- a/matlab/perfect-foresight-models/det_cond_forecast.m
+++ b/matlab/perfect-foresight-models/det_cond_forecast.m
@@ -47,7 +47,7 @@ if ~isfield(oo_,'dr') || ~isfield(oo_.dr,'ghx')
     dr = struct();
     oo_.dr=set_state_space(dr,M_,options_);
     options_.order = 1;
-    [dr,Info,M_,options_,oo_] = resol(0,M_,options_,oo_);
+    [dr,Info,M_,oo_] = resol(0,M_,options_,oo_);
     fprintf('done\n');
 end
 b_surprise = 0;
diff --git a/matlab/perfect-foresight-models/perfect_foresight_simulation.m b/matlab/perfect-foresight-models/perfect_foresight_simulation.m
index 44a145e49cc56b8921c2bef28b2db85ff4c3799b..8e3d6ff0dc20a47cd9c97ccf7d4bc462e99b98a0 100644
--- a/matlab/perfect-foresight-models/perfect_foresight_simulation.m
+++ b/matlab/perfect-foresight-models/perfect_foresight_simulation.m
@@ -74,7 +74,7 @@ else
 end
 
 if ~isstruct(compute_linear_solution) && compute_linear_solution
-    [dr,info,M_,options_,oo_] = resol(0,M_,options_,oo_);
+    [dr,info,M_,oo_] = resol(0,M_,options_,oo_);
 elseif isstruct(compute_linear_solution)
     dr = compute_linear_solution;
     compute_linear_solution = 1;
diff --git a/matlab/prior_posterior_statistics_core.m b/matlab/prior_posterior_statistics_core.m
index c4777edee44271fd41ac43fc1eac587416e3d179..a98405d57bf46072288d99b2c012dd75be402b77 100644
--- a/matlab/prior_posterior_statistics_core.m
+++ b/matlab/prior_posterior_statistics_core.m
@@ -213,17 +213,17 @@ for b=fpar:B
     M_ = set_all_parameters(deep,estim_params_,M_);
 
     if run_smoother
-        [dr,info,M_,opts_local,oo_] =compute_decision_rules(M_,opts_local,oo_);
+        [dr,info,M_,oo_] =compute_decision_rules(M_,opts_local,oo_);
         if ismember(info(1),[3,4]) 
             opts_local.qz_criterium = 1 + (opts_local.qz_criterium-1)*10; %loosen tolerance, useful for big models where BK conditions were tested on restricted state space
-            [dr,info,M_,opts_local,oo_] =compute_decision_rules(M_,opts_local,oo_);
+            [dr,info,M_,oo_] =compute_decision_rules(M_,opts_local,oo_);
         end
         if info(1)
             message=get_error_message(info,opts_local);
             fprintf('\nprior_posterior_statistics: One of the draws failed with the error:\n%s\n',message)
             fprintf('prior_posterior_statistics: This should not happen. Please contact the developers.\n',message)
         end
-        [alphahat,etahat,epsilonhat,alphatilde,SteadyState,trend_coeff,aK,~,~,P,~,~,trend_addition,state_uncertainty,M_,oo_,opts_local,bayestopt_] = ...
+        [alphahat,etahat,epsilonhat,alphatilde,SteadyState,trend_coeff,aK,~,~,P,~,~,trend_addition,state_uncertainty,M_,oo_,bayestopt_] = ...
             DsgeSmoother(deep,gend,Y,data_index,missing_value,M_,oo_,opts_local,bayestopt_,estim_params_);
 
         stock_trend_coeff(options_.varobs_id,irun(9))=trend_coeff;
@@ -354,7 +354,7 @@ for b=fpar:B
             stock_smoothed_uncert(dr.order_var,dr.order_var,:,irun(13)) = state_uncertainty;
         end
     else
-        [T,R,SteadyState,info,M_,options_,oo_] = dynare_resolve(M_,options_,oo_);
+        [T,R,SteadyState,info,M_,oo_] = dynare_resolve(M_,options_,oo_);
     end
     stock_param(irun(5),:) = deep;
     stock_logpo(irun(5),1) = logpo;
diff --git a/matlab/prior_sampler.m b/matlab/prior_sampler.m
index a30d5bfe00924c20daf6cc756a3324a05415819c..b15e9d8c0e8c9eb444f312d2d9a29a846c0f024f 100644
--- a/matlab/prior_sampler.m
+++ b/matlab/prior_sampler.m
@@ -96,7 +96,7 @@ while iteration < NumberOfSimulations
     loop_indx = loop_indx+1;
     params = prior_draw();
     M_ = set_all_parameters(params,estim_params_,M_);
-    [T,R,~,INFO,M_,options_,oo_] = dynare_resolve(M_,options_,oo_,'restrict');
+    [T,R,~,INFO,M_,oo_] = dynare_resolve(M_,options_,oo_,'restrict');
     dr=oo_.dr;
     if ~INFO(1)
         INFO=endogenous_prior_restrictions(T,R,M_,options_,oo_);
diff --git a/matlab/realtime_shock_decomposition.m b/matlab/realtime_shock_decomposition.m
index 23cc5919b4b2e4b9369fd42fb247b045159b6fc0..58f9fbf8e53d75d4d235f3608da5a2ce0f9abd55 100644
--- a/matlab/realtime_shock_decomposition.m
+++ b/matlab/realtime_shock_decomposition.m
@@ -113,7 +113,7 @@ nobs = options_.nobs;
 if forecast_ && any(forecast_params)
     M1=M_;
     M1.params = forecast_params;
-    [~,~,~,~,~,~,oo1] = dynare_resolve(M1,options_,oo_);
+    [~,~,~,~,~,oo1] = dynare_resolve(M1,options_,oo_);
 end
 
 gend0=0;
diff --git a/matlab/resol.m b/matlab/resol.m
index c98c0d9ccb9d1b5cec76a6b158b80d378d009dc9..f6bf12a5102a7d2541fef0d3b81c4e6d48427ea7 100644
--- a/matlab/resol.m
+++ b/matlab/resol.m
@@ -1,4 +1,4 @@
-function [dr, info, M, options, oo] = resol(check_flag, M, options, oo)
+function [dr, info, M, oo] = resol(check_flag, M, options, oo)
 
 % Computes the perturbation based decision rules of the DSGE model (orders 1 to 3)
 %
@@ -12,7 +12,6 @@ function [dr, info, M, options, oo] = resol(check_flag, M, options, oo)
 % - dr            [structure]     Reduced form model.
 % - info          [integer]       scalar or vector, error code.
 % - M             [structure]     Matlab's structure describing the model (M_).
-% - options       [structure]     Matlab's structure describing the current options (options_).
 % - oo            [structure]     Matlab's structure containing the results (oo_).
 %
 % REMARKS
@@ -113,7 +112,7 @@ if options.loglinear
 end
 
 if options.block
-    [dr,info,M,options,oo] = dr_block(dr,check_flag,M,options,oo);
+    [dr,info,M,oo] = dr_block(dr,check_flag,M,options,oo);
     dr.edim = nnz(abs(dr.eigval) > options.qz_criterium);
     dr.sdim = dr.nd-dr.edim;
 else
diff --git a/matlab/reversed_extended_path.m b/matlab/reversed_extended_path.m
index 156b03b30ad8ea5cbe30867531fd17bc3d85db34..38cfdbe3d43703c7b4893b33569228788b6c4506 100644
--- a/matlab/reversed_extended_path.m
+++ b/matlab/reversed_extended_path.m
@@ -48,7 +48,7 @@ steady_;
 
 %  Compute the first order perturbation reduced form.
 old_options_order = options_.order; options_.order = 1;
-[dr,info,M_,options_,oo_] = compute_decision_rules(M_,options_,oo_);
+[dr,info,M_,oo_] = compute_decision_rules(M_,options_,oo_);
 oo_.dr = dr;
 options_.order = old_options_order;
 
diff --git a/matlab/selec_posterior_draws.m b/matlab/selec_posterior_draws.m
index 80df5ac9e119441f3301aab89641bfd01eb2d300..8ab7560d4ff7abcc0754e4ade4b2397faaeb722a 100644
--- a/matlab/selec_posterior_draws.m
+++ b/matlab/selec_posterior_draws.m
@@ -115,7 +115,7 @@ if info
             pdraws(i,1) = {x2(SampleAddress(i,4),:)};
             if info-1
                 set_parameters(pdraws{i,1});
-                [dr,info,M_,options_,oo_] =compute_decision_rules(M_,options_,oo_);
+                [dr,info,M_,oo_] =compute_decision_rules(M_,options_,oo_);
                 pdraws(i,2) = { dr };
             end
             old_mhfile = mhfile;
diff --git a/matlab/simulated_moment_uncertainty.m b/matlab/simulated_moment_uncertainty.m
index 73b607a2658fc32536e01ba25193ad403c5d315f..6e6254e2a5082401844364a0a2efa1af0b8c4140 100644
--- a/matlab/simulated_moment_uncertainty.m
+++ b/matlab/simulated_moment_uncertainty.m
@@ -71,7 +71,7 @@ else
     logged_steady_state_indicator=0;
 end
 
-[dr,info,M_,options_,oo_] = compute_decision_rules(M_,options_,oo_);
+[dr,info,M_,oo_] = compute_decision_rules(M_,options_,oo_);
 oo_.dr=dr;
 if info(1)
     fprintf('\nsimulated_moment_uncertainty: model could not be solved')
diff --git a/matlab/stoch_simul.m b/matlab/stoch_simul.m
index 7e144a27db484eb494974012a505f493c815e5bd..d7c635203adf40c7f969303e1bbf620330fb7932 100644
--- a/matlab/stoch_simul.m
+++ b/matlab/stoch_simul.m
@@ -99,14 +99,14 @@ elseif options_.discretionary_policy
     if ~options_.order==1
         error('discretionary_policy: only linear-quadratic problems can be solved');
     end
-    [~,info,M_,options_,oo_] = discretionary_policy_1(options_.instruments,M_,options_,oo_);
+    [~,info,M_,oo_] = discretionary_policy_1(options_.instruments,M_,options_,oo_);
 else
     if options_.logged_steady_state %if steady state was previously logged, undo this
         oo_.dr.ys=exp(oo_.dr.ys);
         oo_.steady_state=exp(oo_.steady_state);
         options_.logged_steady_state=0;
     end
-    [~,info,M_,options_,oo_] = resol(0,M_,options_,oo_);
+    [~,info,M_,oo_] = resol(0,M_,options_,oo_);
 end
 
 if options_.loglinear && isfield(oo_.dr,'ys') && options_.logged_steady_state==0 %log steady state for correct display of decision rule
diff --git a/tests/analytic_derivatives/BrockMirman_PertParamsDerivs.mod b/tests/analytic_derivatives/BrockMirman_PertParamsDerivs.mod
index f0a611ffedbcf85aba120c33cdfdbccbc3d8a84a..f1efb410c76fb56f53c07fbf113f717ceaebfc77 100644
--- a/tests/analytic_derivatives/BrockMirman_PertParamsDerivs.mod
+++ b/tests/analytic_derivatives/BrockMirman_PertParamsDerivs.mod
@@ -433,7 +433,7 @@ for jj = 1:2
         xparam1_calib = [xparam1_calib; calib_params(indpmodel)];
         M_ = set_all_parameters(xparam1_calib,estim_params_,M_);
     end
-    [~,info,M_,options_,oo_] = resol(0,M_, options_, oo_);
+    [~,info,M_,oo_] = resol(0,M_, options_, oo_);
     %For convenience we save the objects to compare into oo_.dr.
     oo_.dr.Yss  = oo_.dr.ys(oo_.dr.order_var);
     oo_.dr.Sigma_e = M_.Sigma_e;
diff --git a/tests/analytic_derivatives/burnside_3_order_PertParamsDerivs.mod b/tests/analytic_derivatives/burnside_3_order_PertParamsDerivs.mod
index 3ad9f86d075b5801b5f3f862e59a18cc2db02c13..c1279612cdf05387611f9d0198f7d4608babf3bd 100644
--- a/tests/analytic_derivatives/burnside_3_order_PertParamsDerivs.mod
+++ b/tests/analytic_derivatives/burnside_3_order_PertParamsDerivs.mod
@@ -115,7 +115,7 @@ identification(order=@{ORDER},nograph,no_identification_strength);
 %make sure everything is computed at prior mean
 xparam_prior = set_prior(estim_params_,M_,options_);
 M_ = set_all_parameters(xparam_prior,estim_params_,M_);
-[~,info,M_,options_,oo_] = resol(0,M_, options_, oo_);
+[~,info,M_,oo_] = resol(0,M_, options_, oo_);
 
 indpmodel = estim_params_.param_vals(:,1);
 indpstderr = estim_params_.var_exo(:,1);
diff --git a/tests/kalman_filter_smoother/compare_results_simulation/fs2000.mod b/tests/kalman_filter_smoother/compare_results_simulation/fs2000.mod
index 0d2482d77b4e8a999ef37981b2b3700ddb1651a1..4dbc841800135cd5eb56d6a377dc48dd1df8a831 100644
--- a/tests/kalman_filter_smoother/compare_results_simulation/fs2000.mod
+++ b/tests/kalman_filter_smoother/compare_results_simulation/fs2000.mod
@@ -129,7 +129,7 @@ y0 = [y0; oo_.SmoothedVariables.Mean.(M_.endo_names{endo_iter})(1)];
 end;
 
 %make sure decision rules were updated
-[oo_.dr,info,M_,options_] = resol(0,M_,options_,oo_);
+[oo_.dr,info,M_] = resol(0,M_,options_,oo_);
 
 dr = oo_.dr;
 iorder=1;
diff --git a/tests/kalman_filter_smoother/compare_results_simulation/fs2000_ML.mod b/tests/kalman_filter_smoother/compare_results_simulation/fs2000_ML.mod
index 4dc2d616b5cc393162b06cdad14c10594f361f6c..c6b678699912fd8b1703ecfe76e434534e3fd3ac 100644
--- a/tests/kalman_filter_smoother/compare_results_simulation/fs2000_ML.mod
+++ b/tests/kalman_filter_smoother/compare_results_simulation/fs2000_ML.mod
@@ -132,7 +132,7 @@ y0 = [y0; oo_.SmoothedVariables.(M_.endo_names{endo_iter})(1)];
 end;
 
 %make sure decision rules were updated
-[oo_.dr,info,M_,options_] = resol(0,M_,options_,oo_);
+[oo_.dr,info,M_] = resol(0,M_,options_,oo_);
 
 dr = oo_.dr;
 iorder=1;
diff --git a/tests/kalman_filter_smoother/compare_results_simulation/fs2000_ML_loglinear.mod b/tests/kalman_filter_smoother/compare_results_simulation/fs2000_ML_loglinear.mod
index 601ba275d8251cce1a13ab189eb88ab717a7fe8a..a67addf782f4465f1bd4d424c8e81341dca19d21 100644
--- a/tests/kalman_filter_smoother/compare_results_simulation/fs2000_ML_loglinear.mod
+++ b/tests/kalman_filter_smoother/compare_results_simulation/fs2000_ML_loglinear.mod
@@ -132,7 +132,7 @@ y0 = [y0; oo_.SmoothedVariables.(M_.endo_names{endo_iter})(1)];
 end;
 
 %make sure decision rules were updated
-[oo_.dr,info,M_,options_] = resol(0,M_,options_,oo_);
+[oo_.dr,info,M_] = resol(0,M_,options_,oo_);
 
 dr = oo_.dr;
 iorder=1;
diff --git a/tests/kalman_filter_smoother/compare_results_simulation/fs2000_loglinear.mod b/tests/kalman_filter_smoother/compare_results_simulation/fs2000_loglinear.mod
index 7a79cb7edf4cbf1bbbfa5686444e29a04adf183a..8d6ebbf71a00942ba87ef3c5de6ef7a09c9ee385 100644
--- a/tests/kalman_filter_smoother/compare_results_simulation/fs2000_loglinear.mod
+++ b/tests/kalman_filter_smoother/compare_results_simulation/fs2000_loglinear.mod
@@ -146,7 +146,7 @@ y0 = [y0; oo_.SmoothedVariables.Mean.(M_.endo_names{endo_iter})(1)];
 end;
 
 %make sure decision rules were updated
-[oo_.dr,info,M_,options_] = resol(0,M_,options_,oo_);
+[oo_.dr,info,M_] = resol(0,M_,options_,oo_);
 
 dr = oo_.dr;
 iorder=1;
diff --git a/tests/kalman_filter_smoother/test_compute_Pinf_Pstar.mod b/tests/kalman_filter_smoother/test_compute_Pinf_Pstar.mod
index e2551ef2ca8388ab4c0651d47d67ff54ac2d007b..3836769c7a7972240def3629a7465a54a0bd4d32 100644
--- a/tests/kalman_filter_smoother/test_compute_Pinf_Pstar.mod
+++ b/tests/kalman_filter_smoother/test_compute_Pinf_Pstar.mod
@@ -95,7 +95,7 @@ calib_smoother(datafile=Data,diffuse_filter);
 
 mf = bayestopt_.smoother_var_list(bayestopt_.smoother_mf);
 Q = M_.Sigma_e;
-[T,R,SteadyState,info,M_,options_,oo_] = dynare_resolve(M_,options_,oo_);
+[T,R,SteadyState,info,M_,oo_] = dynare_resolve(M_,options_,oo_);
 
 [Pstar,Pinf] = compute_Pinf_Pstar(mf,T,R,Q,options_.qz_criterium);