diff --git a/matlab/dsge_simulated_theoretical_correlation.m b/matlab/dsge_simulated_theoretical_correlation.m
index c32aa9db4226eb65bf8dd821180867ceb76017c7..73a7db56df743cf35f2c94832e601148c2426a6f 100644
--- a/matlab/dsge_simulated_theoretical_correlation.m
+++ b/matlab/dsge_simulated_theoretical_correlation.m
@@ -71,6 +71,13 @@ if ~posterior
 end
 nvar = length(ivar);
 
+if options_.pruning
+    obs_var=NaN(nvar,1);
+    for i=1:nvar
+        obs_var(i,1) = find(strcmp(M_.endo_names(ivar(i),:), M_.endo_names(oo_.dr.order_var)));
+    end
+end
+
 % Set the size of the auto-correlation function to nar.
 oldnar = options_.ar;
 options_.ar = nar;
@@ -109,7 +116,14 @@ for file = 1:NumberOfDrawsFiles
             M_=set_parameters_locally(M_,temp.pdraws{linee,1});
             [dr,info,M_,options_,oo_] = resol(0,M_,options_,oo_);
         end
-        tmp = th_autocovariances(dr,ivar,M_,options_,nodecomposition);
+        if ~options_.pruning
+            tmp = th_autocovariances(dr,ivar,M_,options_,nodecomposition);
+        else
+            pruned_state_space = pruned_state_space_system(M_, options_, dr, obs_var, options_.ar, 1, 0);
+            for i=1:nar
+                tmp{i+1} = pruned_state_space.Corr_yi(:,:,i);                
+            end
+        end
         for i=1:nar
             Correlation_array(linea,:,:,i) = tmp{i+1};
         end
diff --git a/matlab/dsge_simulated_theoretical_covariance.m b/matlab/dsge_simulated_theoretical_covariance.m
index bbd4702751335d3d918386a26aa4b7c3a2f17908..20511c1596bcbc6363e26510733754c30267b232 100644
--- a/matlab/dsge_simulated_theoretical_covariance.m
+++ b/matlab/dsge_simulated_theoretical_covariance.m
@@ -70,6 +70,12 @@ if ~posterior
 end
 nvar = length(ivar);
 
+if options_.pruning
+    obs_var=NaN(nvar,1);
+    for i=1:nvar
+        obs_var(i,1) = find(strcmp(M_.endo_names(ivar(i),:), M_.endo_names(oo_.dr.order_var)));
+    end
+end
 % Set the size of the auto-correlation function to zero.
 nar = options_.ar;
 options_.ar = 0;
@@ -108,7 +114,12 @@ for file = 1:NumberOfDrawsFiles
             M_=set_parameters_locally(M_,temp.pdraws{linee,1});
             [dr,info,M_,options_,oo_] = resol(0,M_,options_,oo_);
         end
-        tmp = th_autocovariances(dr,ivar,M_,options_,nodecomposition);
+        if ~options_.pruning
+            tmp = th_autocovariances(dr,ivar,M_,options_,nodecomposition);
+        else
+            pruned_state_space = pruned_state_space_system(M_, options_, dr, obs_var, options_.ar, 1, 0);
+            tmp{1} = pruned_state_space.Var_y;            
+        end
         for i=1:nvar
             for j=i:nvar
                 Covariance_matrix(linea,symmetric_matrix_index(i,j,nvar)) = tmp{1}(i,j);