diff --git a/macros/make_report_irfs.m b/macros/make_report_irfs.m
index 691713b7be39f41db113d056e381ab29a2e0a31f..d457f0764a0cdd3e4071016135202b960f5ed8a7 100644
--- a/macros/make_report_irfs.m
+++ b/macros/make_report_irfs.m
@@ -1,4 +1,4 @@
-function make_report_irfs(oo)
+function make_report_irfs(M, oo)
 % Builds posterior IRFs after the MH algorithm.
 %
 % INPUTS
@@ -28,29 +28,44 @@ function make_report_irfs(oo)
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
   if ~isfield(oo, 'irfs')
-    disp('make_report_irfs: oo_.irfs does not exist');
-    return
+      disp('make_report_irfs: oo_.irfs does not exist');
+      return
   end
   fields = fieldnames(oo.irfs);
   if isempty(fields)
-    disp('make_report_irfs: oo_.irfs is empty');
-    return
+      disp('make_report_irfs: oo_.irfs is empty');
+      return
+  end
+  if ~isfield(M, 'exo_names')
+      disp('make_report_irfs: M_.exo_names does not exist');
+      return
+  end
+  if ~isfield(M, 'endo_names')
+      disp('make_report_irfs: M_.endo_names does not exist');
+      return
   end
-
   
+  n6 = 1;
   r = report();
-  for i = 1:length(fields)
-    if mod(i-1, 6) == 0
-      r = r.addPage('title', {'Canned Irf Report'});
-      r = r.addSection('cols', 2);
-    end
-    r = r.addGraph('data', dseries(oo.irfs.(fields{i})'), ...
-                   'title', strrep(fields{i}, '_', '\_'), ...
-                   'titleFormat', '\Huge', ...
-                   'showGrid', false, ...
-                   'yTickLabelZeroFill', false, ...
-                   'showZeroLine', true, ...
-                   'zeroLineColor', 'red');
+  for i = 1:length(M.exo_names)
+      for j = 1:length(M.endo_names)
+          if mod(n6 - 1, 6) == 0
+              r = r.addPage('title', {'Canned Irf Report'; ['shock ' M.exo_names(i)]});
+              r = r.addSection('cols', 2);
+              n6 = 1;
+          end
+          idx = ismember(fields,[M.endo_names(j) '_' M.exo_names(i)]);
+          if any(idx)
+              r = r.addGraph('data', dseries(oo.irfs.(fields{idx})'), ...
+                  'title', strrep(fields{idx}, '_', '\_'), ...
+                  'titleFormat', '\Huge', ...
+                  'showGrid', false, ...
+                  'yTickLabelZeroFill', false, ...
+                  'showZeroLine', true, ...
+                  'zeroLineColor', 'red');
+              n6 = n6 + 1;
+          end
+      end
   end
   r.write();
   r.compile();