diff --git a/matlab/estimation/set_number_of_subdraws.m b/matlab/estimation/set_number_of_subdraws.m
index 027303d16738245daf60b51c9638b00eafaf04e3..a54d187f3031f5ab1f3ec03904bf84b7be771173 100644
--- a/matlab/estimation/set_number_of_subdraws.m
+++ b/matlab/estimation/set_number_of_subdraws.m
@@ -32,9 +32,10 @@ error_flag=false;
 if ~issmc(options_)
     record=load_last_mh_history_file([M_.dname filesep 'metropolis'], M_.fname);
     TotalNumberOfMhDraws = sum(record.MhDraws(:,1));
-    NumberOfDraws = TotalNumberOfMhDraws-floor(options_.mh_drop*TotalNumberOfMhDraws);
+    NumberOfDrawsPerChain = TotalNumberOfMhDraws-floor(options_.mh_drop*TotalNumberOfMhDraws);
+    NumberOfDraws=NumberOfDrawsPerChain*record.Nblck;
     if isempty(options_.sub_draws)
-        sub_draws = min(options_.posterior_max_subsample_draws, ceil(.25*NumberOfDraws));
+        sub_draws = min(options_.posterior_max_subsample_draws, ceil(NumberOfDraws));
     else
         if options_.sub_draws>NumberOfDraws*record.Nblck
             skipline()
@@ -62,7 +63,7 @@ else
         error('set_number_of_subdraws:: case should not happen. Please contact the developers')
     end
     if isempty(options_.sub_draws)
-        sub_draws = min(options_.posterior_max_subsample_draws, ceil(.25*NumberOfDraws));
+        sub_draws = min(options_.posterior_max_subsample_draws, NumberOfDraws);
     else
         if options_.sub_draws>NumberOfDraws
             skipline()