diff --git a/matlab/PosteriorIRF_core1.m b/matlab/PosteriorIRF_core1.m
index 7fa1716f6f1c5fbaa13aef2f968dc04f9532bc8a..f9143a3a1e842ea99fa417865999505da03b94b5 100644
--- a/matlab/PosteriorIRF_core1.m
+++ b/matlab/PosteriorIRF_core1.m
@@ -239,9 +239,7 @@ while fpar<B
             stock_irf_bvardsge(:,:,:,IRUN) = reshape(tmp_dsgevar,options_.irf,dataset_.vobs,M_.exo_nbr);
         else
             stock_irf_bvardsge(:,:,:,IRUN) = reshape(tmp_dsgevar,options_.irf,dataset_.vobs,M_.exo_nbr);
-            instr = [MhDirectoryName '/' M_.fname '_irf_bvardsge' ...
-                     int2str(NumberOfIRFfiles_dsgevar) '.mat stock_irf_bvardsge;'];
-            eval(['save ' instr]);
+            save([MhDirectoryName '/' M_.fname '_irf_bvardsge' int2str(NumberOfIRFfiles_dsgevar) '.mat'], 'stock_irf_bvardsge');
             if RemoteFlag==1
                 OutputFileName_bvardsge = [OutputFileName_bvardsge; {[MhDirectoryName filesep], [M_.fname '_irf_bvardsge' int2str(NumberOfIRFfiles_dsgevar) '.mat']}];
             end
@@ -255,9 +253,7 @@ while fpar<B
             stock_irf_dsge = stock_irf_dsge(:,:,:,1:irun);
             if MAX_nirfs_dsgevar && (fpar == B || IRUN == B)
                 stock_irf_bvardsge = stock_irf_bvardsge(:,:,:,1:IRUN);
-                instr = [MhDirectoryName '/' M_.fname '_irf_bvardsge' ...
-                         int2str(NumberOfIRFfiles_dsgevar) '.mat stock_irf_bvardsge;'];
-                eval(['save ' instr]);
+                save([MhDirectoryName '/' M_.fname '_irf_bvardsge' int2str(NumberOfIRFfiles_dsgevar) '.mat'], 'stock_irf_bvardsge');
                 NumberOfIRFfiles_dsgevar = NumberOfIRFfiles_dsgevar+1;
                 if RemoteFlag==1
                     OutputFileName_bvardsge = [OutputFileName_bvardsge; {[MhDirectoryName filesep], [M_.fname '_irf_bvardsge' int2str(NumberOfIRFfiles_dsgevar) '.mat']}];
diff --git a/matlab/stoch_simul.m b/matlab/stoch_simul.m
index e76d9577ea948509b25c6acf74975ed1968402f8..819638f1a64393028143f1f34d0e819f1900a21f 100644
--- a/matlab/stoch_simul.m
+++ b/matlab/stoch_simul.m
@@ -248,8 +248,7 @@ if options_.irf
             for j = 1:nvar
                 assignin('base',[M_.endo_names{i_var(j)} '_' M_.exo_names{i}],...
                          y(i_var(j),:)');
-                eval(['oo_.irfs.' M_.endo_names{i_var(j)} '_' ...
-                      M_.exo_names{i} ' = y(i_var(j),:);']);
+                oo_.irfs.([M_.endo_names{i_var(j)} '_' M_.exo_names{i}]) = y(i_var(j),:);
                 if max(abs(y(i_var(j),:))) >= options_.impulse_responses.plot_threshold
                     irfs  = cat(1,irfs,y(i_var(j),:));
                     if isempty(mylist)