diff --git a/matlab/method_of_moments/method_of_moments.m b/matlab/method_of_moments/method_of_moments.m
index eb5579f43a694597103effa5999d678cee2270df..097940fefef2141ab06f8a61d93d9c75f1d552ad 100644
--- a/matlab/method_of_moments/method_of_moments.m
+++ b/matlab/method_of_moments/method_of_moments.m
@@ -92,6 +92,7 @@ function [oo_, options_mom_, M_] = method_of_moments(bayestopt_, options_, oo_,
 % - [ ] SMM with extended path
 % - [ ] deal with measurement errors (once @wmutschl has implemented this in identification toolbox)
 % - [ ] dirname option to save output to different directory not yet implemented
+% - [ ] display scaled moments
 
 % The TeX option crashes MATLAB R2014a run with "-nodisplay" option
 % (as is done from the testsuite).
@@ -151,7 +152,7 @@ if strcmp(options_mom_.mom.mom_method,'GMM') || strcmp(options_mom_.mom.mom_meth
     options_mom_.mom = set_default_option(options_mom_.mom,'bartlett_kernel_lag',20);               % bandwith in optimal weighting matrix
     options_mom_.mom = set_default_option(options_mom_.mom,'penalized_estimator',false);            % include deviation from prior mean as additional moment restriction and use prior precision as weight
     options_mom_.mom = set_default_option(options_mom_.mom,'verbose',false);                        % display and store intermediate estimation results
-    options_mom_.mom = set_default_option(options_mom_.mom,'weighting_matrix',{'DIAGONAL'; 'DIAGONAL'});   % weighting matrix in moments distance objective function at each iteration of estimation;
+    options_mom_.mom = set_default_option(options_mom_.mom,'weighting_matrix',{'DIAGONAL'; 'OPTIMAL'});   % weighting matrix in moments distance objective function at each iteration of estimation;
                                                                                                            % possible values are 'OPTIMAL', 'IDENTITY_MATRIX' ,'DIAGONAL' or a filename. Size of cell determines stages in iterated estimation.
     options_mom_.mom = set_default_option(options_mom_.mom,'weighting_matrix_scaling_factor',1);    % scaling of weighting matrix in objective function
     options_mom_.mom = set_default_option(options_mom_.mom,'se_tolx',1e-5);                         % step size for numerical computation of standard errors
@@ -166,10 +167,10 @@ if strcmp(options_mom_.mom.mom_method,'SMM')
     options_mom_.mom = set_default_option(options_mom_.mom,'burnin',500);                           % number of periods dropped at beginning of simulation
     options_mom_.mom = set_default_option(options_mom_.mom,'bounded_shock_support',false);          % trim shocks in simulation to +- 2 stdev
     options_mom_.mom = set_default_option(options_mom_.mom,'seed',24051986);                        % seed used in simulations
-    options_mom_.mom = set_default_option(options_mom_.mom,'simulation_multiple',5);                % multiple of the data length used for simulation
+    options_mom_.mom = set_default_option(options_mom_.mom,'simulation_multiple',7);                % multiple of the data length used for simulation
     if options_mom_.mom.simulation_multiple < 1
         fprintf('The simulation horizon is shorter than the data. Dynare resets the simulation_multiple to 5.\n')
-        options_mom_.mom.simulation_multiple = 5;
+        options_mom_.mom.simulation_multiple = 7;
     end
 end
 if strcmp(options_mom_.mom.mom_method,'GMM')
@@ -477,7 +478,7 @@ end
 bayestopt_laplace=bayestopt_;
 
 % Check on specified priors and penalized estimation
-if any(bayestopt_laplace.pshape > 0) % prior specified, not ML
+if any(bayestopt_laplace.pshape > 0) % prior specified
     if ~options_mom_.mom.penalized_estimator
         fprintf('\nPriors were specified, but the penalized_estimator-option was not set.\n')
         fprintf('Dynare sets penalized_estimator to 1. Conducting %s with penalty.\n',options_mom_.mom.mom_method)
@@ -835,7 +836,6 @@ if size(options_mom_.mom.weighting_matrix,1)>1 && ~(any(strcmpi('diagonal',optio
     fprintf('\nYou did not specify the use of an optimal or diagonal weighting matrix. There is no point in running an iterated method of moments.\n')
 end
 
-optim_opt0 = options_mom_.optim_opt; % store original options set by user
 for stage_iter=1:size(options_mom_.mom.weighting_matrix,1)
     fprintf('Estimation stage %u\n',stage_iter);
     Woptflag = false;
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 99b7d91aec04d9ae591d4f907a16e9489f8b532c..c3b1362cbf2acd867d2a4df3a5c0fcaeff5e21bb 100644
--- a/matlab/method_of_moments/method_of_moments_objective_function.m
+++ b/matlab/method_of_moments/method_of_moments_objective_function.m
@@ -20,6 +20,9 @@ function [fval, info, exit_flag, df, junk1, oo_, M_, options_mom_] = method_of_m
 %   o oo_:                      structure containing the results with the following updated fields:
 %      - mom.model_moments       [numMom x 1] vector with model moments
 %      - mom.Q                   value of the quadratic form of the moment difference
+%      - mom.model_moments_params_derivs
+%                                [numMom x numParams] Jacobian matrix of derivatives of model_moments with respect to estimated parameters
+%                                (only for GMM with analytical derivatives)
 %   o M_:                       Matlab's structure describing the model
 %   o options_mom_:             structure information about all settings (specified by the user, preprocessor, and taken from global options_)
 % -------------------------------------------------------------------------