diff --git a/matlab/dynare_estimation.m b/matlab/dynare_estimation.m
index 6fe7a68ec840785ff03fada905e73fd52cccb0ee..2f37857fbbeef9acf881713ea0287e3407b64af4 100644
--- a/matlab/dynare_estimation.m
+++ b/matlab/dynare_estimation.m
@@ -64,7 +64,14 @@ if nnobs > 1
         options_.nobs = nobs(i);
         M_.dname = [dname '_' int2str(nobs(i))];
         dynare_estimation_1(var_list,M_.dname);
-        options_.mode_file = [M_.fname '_mode'];
+        if isequal(i,1)
+            options_.mode_file = [M_.fname '_mode'];
+        end
+        if options_.recursive_estimation_restart
+            for j=1:options_.recursive_estimation_restart
+                dynare_estimation_1(var_list,M_.dname);
+            end
+        end
         oo_recursive_{nobs(i)} = oo_;
     end
 else
diff --git a/matlab/global_initialization.m b/matlab/global_initialization.m
index d65930642c80dca7d222ae60b4e275490af38f33..93857f2251c903959a594dabbe0eb2cdf87ef929 100644
--- a/matlab/global_initialization.m
+++ b/matlab/global_initialization.m
@@ -345,6 +345,7 @@ options_.mh_mode = 1;
 options_.mh_nblck = 2;
 options_.mh_recover = 0;
 options_.mh_replic = 20000;
+options_.recursive_estimation_restart = 0;
 options_.mode_check = 0;
 options_.mode_check_nolik = 0;
 options_.mode_compute = 4;