diff --git a/matlab/set_all_parameters.m b/matlab/set_all_parameters.m
index df515e31fd5fcec62eff1dc2f6056074bf50b873..a69e95d53d3fe46d09a60474f62189fe94cedea2 100644
--- a/matlab/set_all_parameters.m
+++ b/matlab/set_all_parameters.m
@@ -55,8 +55,10 @@ 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;
+if nvx || ncx
+    Sigma_e = M.Sigma_e;
+    Correlation_matrix = M.Correlation_matrix;
+end
 H = M.H;
 Correlation_matrix_ME = M.Correlation_matrix_ME;
 % setting shocks variance on the diagonal of Covariance matrix; used later
@@ -93,13 +95,6 @@ if ncx
         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 calibrated covariances, set them now to their stored value
-if isfield(estim_params,'calibrated_covariances')
-    Sigma_e(estim_params.calibrated_covariances.position)=estim_params.calibrated_covariances.cov_value;
-end
 % update offset
 offset = nvx+nvn+ncx;
 
@@ -113,13 +108,6 @@ if ncn
         Correlation_matrix_ME(k2,k1) = Correlation_matrix_ME(k1,k2);
     end
 end
-%build covariance matrix from correlation matrix and variances already on
-%diagonal
-H = diag(sqrt(diag(H)))*Correlation_matrix_ME*diag(sqrt(diag(H)));
-%if calibrated covariances, set them now to their stored value
-if isfield(estim_params,'calibrated_covariances_ME')
-    H(estim_params.calibrated_covariances_ME.position)=estim_params.calibrated_covariances_ME.cov_value;
-end
 
 % update offset
 offset = nvx+ncx+nvn+ncn;
@@ -131,10 +119,24 @@ end
 
 % updating matrices in M
 if nvx || ncx
+    %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 calibrated covariances, set them now to their stored value
+    if isfield(estim_params,'calibrated_covariances')
+        Sigma_e(estim_params.calibrated_covariances.position)=estim_params.calibrated_covariances.cov_value;
+    end
     M.Sigma_e = Sigma_e;
     M.Correlation_matrix=Correlation_matrix;
 end
 if nvn || ncn
+    %build covariance matrix from correlation matrix and variances already on
+    %diagonal
+    H = diag(sqrt(diag(H)))*Correlation_matrix_ME*diag(sqrt(diag(H)));
+    %if calibrated covariances, set them now to their stored value
+    if isfield(estim_params,'calibrated_covariances_ME')
+        H(estim_params.calibrated_covariances_ME.position)=estim_params.calibrated_covariances_ME.cov_value;
+    end
     M.H = H;
     M.Correlation_matrix_ME=Correlation_matrix_ME;
 end
\ No newline at end of file