diff --git a/matlab/dynare_m.exe b/matlab/dynare_m.exe
index ba9cb681080d8540772ff2a36da25d2c39bc8703..e19c15a99b599081fc3fbbbe5b61b9bdd915c83d 100644
Binary files a/matlab/dynare_m.exe and b/matlab/dynare_m.exe differ
diff --git a/matlab/forecast.m b/matlab/forecast.m
index ec4ae16a5b36a7e28ae0c710151cee8af5e047ef..f07ee6364a6e9bb5e6df6279ad4bf1bb88776b3e 100644
--- a/matlab/forecast.m
+++ b/matlab/forecast.m
@@ -24,16 +24,20 @@ function forecast(var_list)
       ex_det_ = [ ex_det_; repmat(exe_det_',options_.periods- ...
 				  size(ex_det_,1),1)];
     end
-    [yf,var_yf] = simultxdet(y0,dr_,ex,ex_det_,options_.order, ...
+    [yf,int_width] = simultxdet(y0,dr_,ex,ex_det_,options_.order, ...
 				  var_list);
   end
   
   for i=1:endo_nbr
     eval(['oo_.forecast.Mean.' lgy_(i,:) '= yf(' int2str(i) ',:)'';']);
+    eval(['oo_.forecast.HPDinf.' lgy_(i,:) '= yf(' int2str(i) ',2:end)''-' ...
+		    ' int_width(:,' int2str(i) ');']);
+    eval(['oo_.forecast.HPDsup.' lgy_(i,:) '= yf(' int2str(i) ',2:end)''+' ...
+		    ' int_width(:,' int2str(i) ');']);
   end
 
   for i=1:exo_det_nbr
-    eval(['oo_.forecast.Mean.' lgx_det_(i,:) '= ex_det_(:,' int2str(i) ');']);
+    eval(['oo_.forecast.Exogenous.' lgx_det_(i,:) '= ex_det_(:,' int2str(i) ');']);
   end
   
   options_ = old_options;
\ No newline at end of file
diff --git a/matlab/shocks_file.m b/matlab/shocks_file.m
index 76a73a61b179926b9810de0a06643f04017731b4..c22efe306400b23408c0be6007a2390446612f35 100644
--- a/matlab/shocks_file.m
+++ b/matlab/shocks_file.m
@@ -3,9 +3,9 @@
 function []=shocks_file(ms_flag)
   global options_ M_ exo_nbr exo_det_nbr lgx_ lgx_det_ ex_ exe_ ex_det_ exe_det_
   
-  if isfield('options_','shocks_file')
+  if isfield(options_,'shocks_file')
     if exo_det_nbr > 0
-      x = read_variables(options_.shocks_file,lgx_det_);
+      x = read_variables(options_.shocks_file,lgx_det_,[]);
       n = size(x,1);
       M_.ex_det_length = n;
       if size(ex_det_,1) >= n