diff --git a/matlab/calibrate_mh_scale_parameter.m b/matlab/calibrate_mh_scale_parameter.m
index b1e7feb992c15dccacdf82b289cb697712045b9d..4425e7516100aab995a9359b38533d9bfe42e6f0 100644
--- a/matlab/calibrate_mh_scale_parameter.m
+++ b/matlab/calibrate_mh_scale_parameter.m
@@ -1,5 +1,5 @@
 function Scale = calibrate_mh_scale_parameter(ObjectiveFunction, CovarianceMatrix, Parameters, MhBounds, options, varargin)
-
+% function Scale = calibrate_mh_scale_parameter(ObjectiveFunction, CovarianceMatrix, Parameters, MhBounds, options, varargin)
 % Tune the MH scale parameter so that the overall acceptance ratio is close to AcceptanceTarget.
 %
 % INPUTS
@@ -11,7 +11,31 @@ function Scale = calibrate_mh_scale_parameter(ObjectiveFunction, CovarianceMatri
 % - varargin                      [cell]         Additional arguments to be passed to ObjectiveFunction.
 %
 % OUTPUTS
-% - Scale                         [double]       scalar, optimal scale parameter for teh jumping distribution.
+% - Scale                         [double]       scalar, optimal scale parameter for the jumping distribution.
+%
+% Note: program terminates if c3 consecutive runs of stepsize draws occured where 
+%   i) the overall acceptance rate was less than c1 from target and 
+%   ii) less than c2 over the last stepsize=2000 draws.
+% Adjustment between steps takes place using a weighted average with the exponent being rho
+
+
+
+% Copyright (C) 2020-2021 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% Dynare is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
 % Fire up the wait bar
 hh = dyn_waitbar(0,'Tuning of the scale parameter...');
@@ -73,7 +97,7 @@ while j<=options.maxiter
     prtfrc = j/options.maxiter;
     % Update the waitbar
     if ~mod(j, 10)
-        dyn_waitbar(prtfrc, hh, sprintf('Acceptance ratio [during last 500]: %f [%f]', isux/j, jsux/jj));
+        dyn_waitbar(prtfrc, hh, sprintf('Acceptance ratio [during last %u]: %f [%f]', options.stepsize, isux/j, jsux/jj));
     end
     % Adjust the value of the scale parameter.
     if ~mod(j, options.stepsize)
diff --git a/matlab/initial_estimation_checks.m b/matlab/initial_estimation_checks.m
index fa4acfcde8211473a2236eba5ffb4719ff9d1a97..36096b87891044ea81e96d3e82f18bb098d41781 100644
--- a/matlab/initial_estimation_checks.m
+++ b/matlab/initial_estimation_checks.m
@@ -290,6 +290,10 @@ if ~isequal(DynareOptions.mode_compute,11)
     disp(['Initial value of the log posterior (or likelihood): ' num2str(-fval)]);
 end
 
+if DynareOptions.mh_tune_jscale.status && (DynareOptions.mh_tune_jscale.maxiter<DynareOptions.mh_tune_jscale.stepsize)
+    warning('You specified mh_tune_jscale, but the maximum number of iterations is smaller than the step size. No update will take place.')
+end
+
 function evaluate_expression(expression,M_,oo_)
 % function evaluate_expression(expression,M_,oo_)
 %evaluates expressions relying on M_ and oo_ having their original names