diff --git a/matlab/check_list_of_variables.m b/matlab/check_list_of_variables.m
index e9fb3be3b03ec3dfb2868dd0efa8e6eb1dc29770..ab1e8cde0cab7706d7066129dcf0623fbfa98dbc 100644
--- a/matlab/check_list_of_variables.m
+++ b/matlab/check_list_of_variables.m
@@ -33,8 +33,8 @@ function varlist = check_list_of_variables(options_, M_, varlist)
 
 %get uniques
 
-[junk1,junk2,index_uniqes] = varlist_indices(varlist,M_.endo_names);
-varlist=varlist(index_uniqes,:);
+[junk1,junk2,index_uniques] = varlist_indices(varlist,M_.endo_names);
+varlist=varlist(index_uniques,:);
 
 msg = 0;
 if options_.dsge_var && options_.bayesian_irf
diff --git a/matlab/initial_condition_decomposition.m b/matlab/initial_condition_decomposition.m
index 1eb2b795982cb21fce950259e1f1c62989990f01..7e2f0ae2cb242f596e98aafa9c2f9c4fd9a9fedb 100644
--- a/matlab/initial_condition_decomposition.m
+++ b/matlab/initial_condition_decomposition.m
@@ -50,7 +50,8 @@ if size(varlist,1) == 0
     varlist = M_.endo_names(1:M_.orig_endo_nbr,:);
 end
 
-[i_var,nvar] = varlist_indices(varlist,M_.endo_names);
+[i_var,nvar,index_uniques] = varlist_indices(varlist,M_.endo_names);
+varlist=varlist(index_uniques,:);
 
 % number of variables
 endo_nbr = M_.endo_nbr;
diff --git a/matlab/plot_shock_decomposition.m b/matlab/plot_shock_decomposition.m
index 15c97506ac95e6c16cad20f429809ca83ed05a67..698192a919252b4542b852a153b46ddf447218d7 100644
--- a/matlab/plot_shock_decomposition.m
+++ b/matlab/plot_shock_decomposition.m
@@ -38,7 +38,8 @@ if size(varlist,1) == 0
     varlist = M_.endo_names(1:M_.orig_endo_nbr,:);
 end
 
-[i_var,nvar] = varlist_indices(varlist,M_.endo_names);
+[i_var,nvar,index_uniques] = varlist_indices(varlist,M_.endo_names);
+varlist=varlist(index_uniques,:);
 
 % number of variables
 endo_nbr = M_.endo_nbr;
diff --git a/matlab/realtime_shock_decomposition.m b/matlab/realtime_shock_decomposition.m
index 2e47066e15f3a503c180c979cbc328ef04547c6d..2cdb6d94984a533b7d45123d525456905df81f70 100644
--- a/matlab/realtime_shock_decomposition.m
+++ b/matlab/realtime_shock_decomposition.m
@@ -44,7 +44,8 @@ if size(varlist,1) == 0
     varlist = M_.endo_names(1:M_.orig_endo_nbr,:);
 end
 
-[i_var,nvar] = varlist_indices(varlist,M_.endo_names);
+[i_var,nvar,index_uniques] = varlist_indices(varlist,M_.endo_names);
+varlist=varlist(index_uniques,:);
 
 % number of variables
 endo_nbr = M_.endo_nbr;
diff --git a/matlab/shock_decomposition.m b/matlab/shock_decomposition.m
index 9c5144110cd977159bf3b84b4cf89b5f100ee2c7..89f3c431b1b1b7a3d39333ca9c07009bb9ef663e 100644
--- a/matlab/shock_decomposition.m
+++ b/matlab/shock_decomposition.m
@@ -45,7 +45,8 @@ if size(varlist,1) == 0
     varlist = M_.endo_names(1:M_.orig_endo_nbr,:);
 end
 
-[i_var,nvar] = varlist_indices(varlist,M_.endo_names);
+[i_var,nvar,index_uniques] = varlist_indices(varlist,M_.endo_names);
+varlist=varlist(index_uniques,:);
 
 % number of variables
 endo_nbr = M_.endo_nbr;
diff --git a/matlab/stoch_simul.m b/matlab/stoch_simul.m
index d187a45a530ae59e7947ea821046561d47860740..5465eaa9686430f1b22fc352bec55b831fc45808 100644
--- a/matlab/stoch_simul.m
+++ b/matlab/stoch_simul.m
@@ -56,7 +56,8 @@ if size(var_list,1) == 0
     var_list = M_.endo_names(1:M_.orig_endo_nbr, :);
 end
 
-[i_var,nvar] = varlist_indices(var_list,M_.endo_names);
+[i_var,nvar,index_uniques] = varlist_indices(var_list,M_.endo_names);
+var_list=var_list(index_uniques,:);
 
 iter_ = max(options_.periods,1);
 if M_.exo_nbr > 0
diff --git a/matlab/varlist_indices.m b/matlab/varlist_indices.m
index 1299e54d57e13ea4a589a6df05085e2e77bfb777..5d593c0062b0d5a98fb1ef4005a5bca2ddcb1e41 100644
--- a/matlab/varlist_indices.m
+++ b/matlab/varlist_indices.m
@@ -1,5 +1,5 @@
 function [i_var,nvar,index_uniques] = varlist_indices(sublist,list)
-% function [i_var,nvar] = varlist_indices(sublist,list)
+% function [i_var,nvar,index_uniques] = varlist_indices(sublist,list)
 % returns the indices of a list of endogenous variables
 %
 % INPUT