diff --git a/matlab/get_identification_jacobians.m b/matlab/get_identification_jacobians.m
index 7e7443bfdc230c6554ce7140ac3423fba52d0533..453cb4ef4fde031bdf996e0853ba4bdc915109a2 100644
--- a/matlab/get_identification_jacobians.m
+++ b/matlab/get_identification_jacobians.m
@@ -241,12 +241,11 @@ if order == 1
 end
 
 %% Compute dMOMENTS
-if ~no_identification_moments    
-    if useautocorr
-        E_yy  = pruned.Corr_y;  dE_yy  = pruned.dCorr_y;
+if ~no_identification_moments
+    E_yy  = pruned.Var_y;  dE_yy  = pruned.dVar_y;
+    if useautocorr        
         E_yyi = pruned.Corr_yi; dE_yyi = pruned.dCorr_yi;
-    else
-        E_yy  = pruned.Var_y;   dE_yy  = pruned.dVar_y;
+    else        
         E_yyi = pruned.Var_yi;  dE_yyi = pruned.dVar_yi;
     end
     MOMENTS = [MEAN; dyn_vech(E_yy)];
diff --git a/matlab/identification_numerical_objective.m b/matlab/identification_numerical_objective.m
index 48ba28bfc71e839e72919ff075c55c6d8ae65570..66112ca6b3960abe936cb355125a92cb9135d806 100644
--- a/matlab/identification_numerical_objective.m
+++ b/matlab/identification_numerical_objective.m
@@ -82,11 +82,7 @@ pruned = pruned_state_space_system(M, options, oo.dr, indvar, nlags, useautocorr
 
 %% out = [vech(cov(Y_t,Y_t)); vec(cov(Y_t,Y_{t-1}); ...; vec(cov(Y_t,Y_{t-nlags})] of indvar variables, in DR order. This is Iskrev (2010)'s J matrix.
 if outputflag == 1    
-    if useautocorr
-        out = dyn_vech(pruned.Corr_y);
-    else
-        out = dyn_vech(pruned.Var_y);
-    end    
+    out = dyn_vech(pruned.Var_y);
     for i = 1:nlags
         if useautocorr
             out = [out;vec(pruned.Corr_yi(:,:,i))];
diff --git a/matlab/pruned_state_space_system.m b/matlab/pruned_state_space_system.m
index fefb3ee509d44f78a5d85e86cf85a8e6eafd3190..4395f109cc9e0879c6012bf54d5f78327c5f84fa 100644
--- a/matlab/pruned_state_space_system.m
+++ b/matlab/pruned_state_space_system.m
@@ -1032,9 +1032,9 @@ end
 indzeros = find(abs(Var_y) < 1e-12); %find values that are numerical zero
 Var_y(indzeros) = 0;
 if useautocorr
-    sy = sqrt(diag(Var_y)); %theoretical standard deviation
-    sy = sy(stationary_vars);
-    sy = sy*sy';            %cross products of standard deviations
+    sdy = sqrt(diag(Var_y)); %theoretical standard deviation
+    sdy = sdy(stationary_vars);
+    sy = sdy*sdy';           %cross products of standard deviations
     Corr_y = NaN*ones(y_nbr,y_nbr);
     Corr_y(stationary_vars,stationary_vars) = Var_y(stationary_vars,stationary_vars)./sy;
     Corr_yi = NaN*ones(y_nbr,y_nbr,nlags);
@@ -1060,10 +1060,9 @@ if compute_derivs
         dVar_y_tmp(indzeros) = 0;        
         dVar_y(stationary_vars,stationary_vars,jpV) = dVar_y_tmp;
         if useautocorr
-            %is this correct?[@wmutschl]
-            dsy = 1/2./sy.*diag(dVar_y(:,:,jpV));
+            dsy = 1/2./sdy.*diag(dVar_y(:,:,jpV));
             dsy = dsy(stationary_vars);
-            dsy = dsy*sy'+sy*dsy';
+            dsy = dsy*sdy'+sdy*dsy';
             dCorr_y(stationary_vars,stationary_vars,jpV) = (dVar_y(stationary_vars,stationary_vars,jpV).*sy-dsy.*Var_y(stationary_vars,stationary_vars))./(sy.*sy);
             dCorr_y(stationary_vars,stationary_vars,jpV) = dCorr_y(stationary_vars,stationary_vars,jpV)-diag(diag(dCorr_y(stationary_vars,stationary_vars,jpV)))+diag(diag(dVar_y(stationary_vars,stationary_vars,jpV)));
         end
@@ -1138,6 +1137,9 @@ if compute_derivs
                                                                 + dD(stationary_vars,:,jpVi)*E_inovzlagi*C(stationary_vars,:)' + D(stationary_vars,:)*dE_inovzlagi_jpVi*C(stationary_vars,:)' + D(stationary_vars,:)*E_inovzlagi*dC(stationary_vars,:,jpVi)';
             end
             if useautocorr
+                dsy = 1/2./sdy.*diag(dVar_y(:,:,jpVi));
+                dsy = dsy(stationary_vars);
+                dsy = dsy*sdy'+sdy*dsy';
                 dCorr_yi(stationary_vars,stationary_vars,i,jpVi) = (dVar_yi(stationary_vars,stationary_vars,i,jpVi).*sy-dsy.*Var_yi(stationary_vars,stationary_vars,i))./(sy.*sy);                
             end
             dAi_jpVi = dAi_jpVi*A + Ai*dA(:,:,jpVi);