diff --git a/matlab/set_parameters.m b/matlab/set_parameters.m
index 15f4175ed1112c968364093db1ea39c2cf0423fe..99be93213ea46b4f008a6686905981c0569b87b2 100644
--- a/matlab/set_parameters.m
+++ b/matlab/set_parameters.m
@@ -31,53 +31,6 @@ function set_parameters(xparam1)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-global estim_params_ M_
+global M_
 
-nvx = estim_params_.nvx;
-ncx = estim_params_.ncx;
-nvn = estim_params_.nvn;
-ncn = estim_params_.ncn;
-np = estim_params_.np;
-Sigma_e = M_.Sigma_e;
-Correlation_matrix = M_.Correlation_matrix;
-offset = 0;
-
-% setting shocks variance on the diagonal of Covariance matrix; used later
-% for updating covariances
-if nvx
-    var_exo = estim_params_.var_exo;
-    for i=1:nvx
-        k = var_exo(i,1);
-        Sigma_e(k,k) = xparam1(i)^2;
-    end
-end
-% and update offset
-offset = offset + nvx + nvn;
-
-% correlations amonx shocks (ncx)
-if ncx
-    corrx = estim_params_.corrx;
-    for i=1:ncx
-        k1 = corrx(i,1);
-        k2 = corrx(i,2);
-        Correlation_matrix(k1,k2) = xparam1(i+offset);
-        Correlation_matrix(k2,k1) = Correlation_matrix(k1,k2);
-    end
-end
-%build covariance matrix from correlation matrix and variances already on
-%diagonal
-Sigma_e = diag(sqrt(diag(Sigma_e)))*Correlation_matrix*diag(sqrt(diag(Sigma_e)));
-if isfield(estim_params_,'calibrated_covariances')
-    Sigma_e(estim_params_.calibrated_covariances.position)=estim_params_.calibrated_covariances.cov_value;
-end
-
-% and update offset
-offset = offset + ncx + ncn;
-
-% structural parameters
-if np
-    M_.params(estim_params_.param_vals(:,1)) = xparam1(offset+1:end);
-end
-
-M_.Sigma_e = Sigma_e;
-M_.Correlation_matrix=Correlation_matrix;
+M_ = set_parameters_locally(M_, xparam1);
\ No newline at end of file