diff --git a/matlab/graph_decomp.m b/matlab/graph_decomp.m
index 743865a7a..8bbed9c6b 100644
--- a/matlab/graph_decomp.m
+++ b/matlab/graph_decomp.m
@@ -28,6 +28,8 @@ function []=graph_decomp(z,shock_names,endo_names,i_var,initial_date,DynareModel
% You should have received a copy of the GNU General Public License
% along with Dynare. If not, see .
+new_colormap = DynareOptions.colormap;
+
% number of components equals number of shocks + 1 (initial conditions)
comp_nbr = size(z,2)-1;
@@ -98,6 +100,9 @@ for j=1:nvar
y1 = y1 + height;
end
+ if ~isempty(new_colormap)
+ colormap(new_colormap)
+ end
dyn_saveas(fhandle,[DynareModel.fname,'_shock_decomposition_',deblank(endo_names(i_var(j),:))],DynareOptions);
hold off
if DynareOptions.TeX && any(strcmp('eps',cellstr(DynareOptions.graph_format)))
diff --git a/preprocessor/DynareBison.yy b/preprocessor/DynareBison.yy
index c6ac9ea0f..0c6e7fa86 100644
--- a/preprocessor/DynareBison.yy
+++ b/preprocessor/DynareBison.yy
@@ -3117,7 +3117,7 @@ o_sampling_draws : SAMPLING_DRAWS EQUAL INT_NUMBER { driver.option_num("sampling
o_use_shock_groups : USE_SHOCK_GROUPS { driver.option_str("use_shock_groups","default"); }
| USE_SHOCK_GROUPS EQUAL symbol { driver.option_str("use_shock_groups", $3); }
;
-o_colormap : COLORMAP EQUAL symbol { driver.option_str("colormap",$3); };
+o_colormap : COLORMAP EQUAL symbol { driver.option_num("colormap",$3); };
range : symbol ':' symbol
{
diff --git a/preprocessor/DynareFlex.ll b/preprocessor/DynareFlex.ll
index 2e695633f..37d88361f 100644
--- a/preprocessor/DynareFlex.ll
+++ b/preprocessor/DynareFlex.ll
@@ -795,6 +795,7 @@ DATE -?[0-9]+([YyAa]|[Mm]([1-9]|1[0-2])|[Qq][1-4]|[Ww]([1-9]{1}|[1-4][0-9]|5[0-2
gsa_sample_file {return token::GSA_SAMPLE_FILE;}
use_shock_groups {return token::USE_SHOCK_GROUPS;}
+colormap {return token::COLORMAP;}
[A-Za-z_][A-Za-z0-9_]* {
yylval->string_val = new string(yytext);