diff --git a/matlab/optimization/mr_gstep.m b/matlab/optimization/mr_gstep.m
index 6a403ea7ade5de125f820b585b247e90cd5e2c56..6f3d6dc984bb1a07c788e88876989b5faeebe107 100644
--- a/matlab/optimization/mr_gstep.m
+++ b/matlab/optimization/mr_gstep.m
@@ -83,11 +83,11 @@ while i<n
     end
     x = check_bounds(x,bounds);
     if Save_files
-        save('gstep.mat','x','h1','f0')
+        save(['gstep' int2str(Save_files) '.mat'],'x','h1','f0')
     end
 end
 if Save_files
-    save('gstep.mat','x','h1','f0')
+    save(['gstep' int2str(Save_files) '.mat'],'x','h1','f0')
 end
 
 return
diff --git a/matlab/optimization/mr_hessian.m b/matlab/optimization/mr_hessian.m
index f13bdd63f122eaa9533f4303b34707e71e24d18f..616d7501d2a49116fe54cbf420418029cd3bd7c5 100644
--- a/matlab/optimization/mr_hessian.m
+++ b/matlab/optimization/mr_hessian.m
@@ -256,7 +256,7 @@ if outer_product_gradient
     end
     hh1=hess_info.h1;
     if Save_files
-        save('hess.mat','hessian_mat')
+        save(['hess' int2str(Save_files) '.mat'],'hessian_mat')
     end
 else
     hessian_mat=[];
diff --git a/matlab/optimization/newrat.m b/matlab/optimization/newrat.m
index d1d75f3b379b0857d3cf53640bd95d1ca283850d..6125491a025bf3b24be566c7891ff71cd5c553fd 100644
--- a/matlab/optimization/newrat.m
+++ b/matlab/optimization/newrat.m
@@ -132,7 +132,7 @@ if Verbose
     end
 end
 if Save_files
-    save('m1.mat','x','hh','g','hhg','igg','fval0')
+    save(['m' int2str(Save_files) '.mat'],'x','hh','g','hhg','igg','fval0')
 end
 
 igrad=1;
@@ -248,11 +248,11 @@ while norm(gg)>gtol && check==0 && jit<nit
         if norm(x(:,icount)-xparam1)>1.e-12 && analytic_derivation==0
             try
                 if Save_files
-                    save('m1.mat','x','fval0','nig','-append')
+                    save(['m' int2str(Save_files) '.mat'],'x','fval0','nig','-append')
                 end
             catch
                 if Save_files
-                    save('m1.mat','x','fval0','nig')
+                    save(['m' int2str(Save_files) '.mat'],'x','fval0','nig')
                 end
             end
             [dum, gg, htol0, igg, hhg, h1, hess_info]=mr_hessian(xparam1,func0,penalty,flagit,htol,hess_info,bounds,prior_std,Save_files,varargin{:});
@@ -297,12 +297,12 @@ while norm(gg)>gtol && check==0 && jit<nit
         disp_verbose(['Elapsed time for iteration ',num2str(t),' s.'],Verbose)
         g(:,icount+1)=gg;
         if Save_files
-            save('m1.mat','x','hh','g','hhg','igg','fval0','nig','H')
+            save(['m' int2str(Save_files) '.mat'],'x','hh','g','hhg','igg','fval0','nig','H')
         end
     end
 end
 if Save_files
-    save('m1.mat','x','hh','g','hhg','igg','fval0','nig')
+    save(['m' int2str(Save_files) '.mat'],'x','hh','g','hhg','igg','fval0','nig')
 end
 if ftol>ftol0
     skipline()