diff --git a/doc/dynare.texi b/doc/dynare.texi
index 96e5a58ee62358fa015481f9664f72a376201ed7..60d5eb3b0fd7713cdc6c487d8a307bd6031bedc0 100644
--- a/doc/dynare.texi
+++ b/doc/dynare.texi
@@ -4041,6 +4041,10 @@ will be saved to disk (to the format specified by @code{graph_format}
 option, except if @code{graph_format=none}) and displayed to screen
 (unless @code{nodisplay} option is used).
 
+@item graph
+@anchor{graph}
+Re-enables the generation of graphs previously shut off with @ref{nograph}.
+
 @item nodisplay
 @anchor{nodisplay} Do not display the graphs, but still save them to disk
 (unless @code{nograph} is used).
@@ -5193,6 +5197,15 @@ Default value is @code{1}.
 @item nograph
 @xref{nograph}.
 
+@item posterior_nograph
+@anchor{posterior_nograph}
+Suppresses the generation of graphs associated with Bayesian IRFs (@ref{bayesian_irf}), 
+posterior smoothed objects (@ref{smoother}), and posterior forecasts (@ref{forecast}).
+
+@item posterior_graph
+@anchor{posterior_graph}
+Re-enables the generation of graphs previously shut off with @ref{posterior_nograph}.
+
 @item nodisplay
 @xref{nodisplay}.
 
@@ -7041,6 +7054,11 @@ the decomposition. Groups of shocks are defined in @xref{shock_groups} block.
 @item colormap = @var{COLORMAP_NAME}
 @anchor{colormap}. Controls the colormap used for the shocks decomposition
 graphs. See @code{colormap} in Matlab/Octave manual.
+
+@item nograph
+@xref{nograph}. Suppresses the display and creation only within the @code{shock_decomposition}-command
+but does not affect other commands.
+
 @end table
 
 @vindex oo_.shock_decomposition
diff --git a/matlab/PosteriorIRF.m b/matlab/PosteriorIRF.m
index 9a89b4c0c244034e904b61313794a6c4af49b8a2..8b086c5b96daf8269893c53628351b6114aa4211 100644
--- a/matlab/PosteriorIRF.m
+++ b/matlab/PosteriorIRF.m
@@ -362,7 +362,7 @@ end
 % .tex generation always run in sequentially. This portion of code is execute in parallel by
 % PosteriorIRF_core2.m function.
 
-
+if ~options_.nograph && ~options_.no_graph.posterior
 % Save the local variables.
 localVars=[];
 
@@ -459,5 +459,6 @@ else
 end
 % END parallel code!
 
+end
 
 fprintf('Estimation::mcmc: Posterior IRFs, done!\n');
diff --git a/matlab/global_initialization.m b/matlab/global_initialization.m
index 2f8eec3611da33da02a7fb12a3678bb02d8758bf..e65ca4a62a53ff320a98718a10f0a4dca76da1ae 100644
--- a/matlab/global_initialization.m
+++ b/matlab/global_initialization.m
@@ -134,6 +134,8 @@ options_.graphics.line_width = 1;
 options_.graph_format = 'eps';
 options_.nodisplay = 0;
 options_.nograph = 0;
+options_.no_graph.posterior = 0;
+options_.no_graph.shock_decomposition = 0;
 options_.XTick = [];
 options_.XTickLabel = [];
 options_.console_mode = 0;
@@ -790,9 +792,6 @@ options_.mcppath.mu0 = [];
 %Figure options
 options_.figures.textwidth=0.8;
 
-% Shock decomposition options
-options_.shock_decomp.nograph = 0;
-
 % initialize persistent variables in priordens()
 priordens([],[],[],[],[],[],1);
 % initialize persistent variables in dyn_first_order_solver()
diff --git a/matlab/pm3.m b/matlab/pm3.m
index 21a486162cd1431d9ab27314aa8a296b7a125132..ae0f474d16b03363ce7ca1fd9a09168c2b6caf7c 100644
--- a/matlab/pm3.m
+++ b/matlab/pm3.m
@@ -292,6 +292,7 @@ end
 %% 	Finally I build the plots.
 %%
 
+if ~options_.nograph && ~options_.no_graph.posterior
 % Block of code executed in parallel, with the exception of file
 % .tex generation always run sequentially. This portion of code is execute in parallel by
 % pm3_core1.m function.
@@ -394,5 +395,6 @@ if options_.TeX && any(strcmp('eps',cellstr(options_.graph_format)))
     fprintf(fidTeX,'%% End of TeX file.\n');
     fclose(fidTeX);
 end
+end
 
-fprintf(['Estimation::mcmc: ' tit1 ', done!\n']);
\ No newline at end of file
+fprintf(['Estimation::mcmc: ' tit1 ', done!\n']);
diff --git a/matlab/shock_decomposition.m b/matlab/shock_decomposition.m
index aa61c9b88b9e4a74035e03ecf9f9ede43d5ee254..f3c264edcaf3018b17c8c5f27bf63af93147e156 100644
--- a/matlab/shock_decomposition.m
+++ b/matlab/shock_decomposition.m
@@ -139,4 +139,6 @@ else
     shock_names = M_.exo_names;
 end
         
-graph_decomp(z,shock_names,M_.endo_names,i_var,options_.initial_date,M_,options_)
+if ~options_.no_graph.shock_decomposition
+    graph_decomp(z,shock_names,M_.endo_names,i_var,options_.initial_date,M_,options_)
+end
\ No newline at end of file
diff --git a/preprocessor/DynareBison.yy b/preprocessor/DynareBison.yy
index 358aead34fc029d34c8be958a79dfee3cf75a3ba..2c37056c5b9c11733611ea78e2ee9fb7e518650a 100644
--- a/preprocessor/DynareBison.yy
+++ b/preprocessor/DynareBison.yy
@@ -114,7 +114,7 @@ class ParsingDriver;
 %token FILTER_ALGORITHM PROPOSAL_APPROXIMATION CUBATURE UNSCENTED MONTECARLO DISTRIBUTION_APPROXIMATION
 %token <string_val> NAME
 %token NAN_CONSTANT NO_STATIC NOBS NOCONSTANT NODISPLAY NOCORR NODIAGNOSTIC NOFUNCTIONS NO_HOMOTOPY
-%token NOGRAPH NOMOMENTS NOPRINT NORMAL_PDF SAVE_DRAWS
+%token NOGRAPH POSTERIOR_NOGRAPH POSTERIOR_GRAPH NOMOMENTS NOPRINT NORMAL_PDF SAVE_DRAWS
 %token OBSERVATION_TRENDS OPTIM OPTIM_WEIGHTS ORDER OSR OSR_PARAMS MAX_DIM_COVA_GROUP ADVANCED OUTFILE OUTVARS OVERWRITE
 %token PARALLEL_LOCAL_FILES PARAMETERS PARAMETER_SET PARTIAL_INFORMATION PERIODS PERIOD PLANNER_OBJECTIVE PLOT_CONDITIONAL_FORECAST PLOT_PRIORS PREFILTER PRESAMPLE
 %token PERFECT_FORESIGHT_SETUP PERFECT_FORESIGHT_SOLVER NO_POSTERIOR_KERNEL_DENSITY FUNCTION
@@ -1726,6 +1726,7 @@ estimation_options : o_datafile
                    | o_lik_algo
                    | o_lik_init
                    | o_nograph
+                   | o_posterior_nograph
                    | o_nodisplay
                    | o_graph_format
                    | o_forecasts_conf_sig
@@ -2823,7 +2824,12 @@ o_nograph : NOGRAPH
           | GRAPH
             { driver.option_num("nograph", "0"); }
           ;
-o_shock_decomposition_nograph : NOGRAPH { driver.option_num("shock_decomp.nograph", "1"); }
+o_posterior_nograph : POSTERIOR_NOGRAPH
+            { driver.option_num("no_graph.posterior","1"); }
+          | POSTERIOR_GRAPH
+            { driver.option_num("no_graph.posterior", "0"); }
+          ;
+o_shock_decomposition_nograph : NOGRAPH { driver.option_num("no_graph.shock_decomposition", "1"); }
 o_nodisplay : NODISPLAY { driver.option_num("nodisplay","1"); };
 o_graph_format : GRAPH_FORMAT EQUAL allowed_graph_formats
                  { driver.process_graph_format_option(); }
diff --git a/preprocessor/DynareFlex.ll b/preprocessor/DynareFlex.ll
index e461cb82550b2a1001c235af3f2cb12ea9e11142..8d00b28740b69aba1715e4b1c743f045b41dab6c 100644
--- a/preprocessor/DynareFlex.ll
+++ b/preprocessor/DynareFlex.ll
@@ -276,6 +276,8 @@ DATE -?[0-9]+([YyAa]|[Mm]([1-9]|1[0-2])|[Qq][1-4]|[Ww]([1-9]{1}|[1-4][0-9]|5[0-2
 <DYNARE_STATEMENT>raftery_lewis_diagnostics {return token::RAFTERY_LEWIS_DIAGNOSTICS;}
 <DYNARE_STATEMENT>graph   		{return token::GRAPH;}
 <DYNARE_STATEMENT>nograph   		{return token::NOGRAPH;}
+<DYNARE_STATEMENT>posterior_graph   		{return token::POSTERIOR_GRAPH;}
+<DYNARE_STATEMENT>posterior_nograph   		{return token::POSTERIOR_NOGRAPH;}
 <DYNARE_STATEMENT>nodisplay     {return token::NODISPLAY;}
 <DYNARE_STATEMENT>graph_format  {return token::GRAPH_FORMAT;}
 <DYNARE_STATEMENT>eps  {yylval->string_val = new string(yytext); return token::EPS;}
diff --git a/tests/estimation/fs2000.mod b/tests/estimation/fs2000.mod
index d9f62263c44012f2b656ba020d5542519c9fb64b..e218280bcc65029c8d4619535832ef11bcdd0c79 100644
--- a/tests/estimation/fs2000.mod
+++ b/tests/estimation/fs2000.mod
@@ -86,7 +86,8 @@ estimation(order=1,datafile=fsdat_simul,nobs=192,loglinear,mh_replic=3000,mh_nbl
         geweke_interval = [0.19 0.49],
         taper_steps = [4 7 15],
         raftery_lewis_diagnostics,
-        raftery_lewis_qrs=[0.025 0.01 0.95]
+        raftery_lewis_qrs=[0.025 0.01 0.95],
+        bayesian_irf,posterior_nograph
         ) y m;
 
 if ~isequal(options_.convergence.geweke.taper_steps,[4 7 15]') || ~isequal(options_.convergence.geweke.geweke_interval,[0.19 0.49])
@@ -98,6 +99,7 @@ if ~isequal(options_.convergence.rafterylewis.qrs,[0.025 0.01 0.95]) || ~isequal
 end
 
 %test load_mh_file option
+options_.bayesian_irf=0;
 options_.smoother=0;
 options_.moments_varendo=0;
 options_.forecast=0;