diff --git a/matlab/shock_decomposition/plot_shock_decomposition.m b/matlab/shock_decomposition/plot_shock_decomposition.m
index 640f623f6a160219b60d68276df9793080cb330e..04649bbb6e81bc2ebd458826043abd1be75add50 100644
--- a/matlab/shock_decomposition/plot_shock_decomposition.m
+++ b/matlab/shock_decomposition/plot_shock_decomposition.m
@@ -249,6 +249,15 @@ end
 
 
 if ~isempty(init2shocks) && ~expand
+    if not(isfield(oo_,'initval_decomposition'))
+        disp('computing initval shock decomposition ...')
+        bayestopt_ = evalin('base','bayestopt_');
+        estim_params_ = evalin('base','estim_params_');
+        M_= evalin('base','M_');
+        options_ = set_default_initial_condition_decomposition_options(options_);
+        oo_ = initial_condition_decomposition(M_,oo_,options_,0,bayestopt_,estim_params_);
+        out = oo_;
+    end
     n=size(init2shocks,1);
     M_.exo_names_init=M_.exo_names;
     for i=1:n