diff --git a/matlab/discretionary_policy/discretionary_policy.m b/matlab/discretionary_policy/discretionary_policy.m
index 3c57a91460f1d2782ebf5d93432e0e0bbd9cb636..f1c982456c24c546bac7a33056c8fde9c3a20941 100644
--- a/matlab/discretionary_policy/discretionary_policy.m
+++ b/matlab/discretionary_policy/discretionary_policy.m
@@ -35,6 +35,9 @@ origorder = options_.order;
 options_.order = 1;
 [info, oo_, options_, M_] = stoch_simul(M_, options_, oo_, var_list);
 
+if info(1)
+    return;
+end
 oo_.steady_state = oo_.dr.ys;
 
 if ~options_.noprint
diff --git a/matlab/discretionary_policy/discretionary_policy_1.m b/matlab/discretionary_policy/discretionary_policy_1.m
index ec1be205bf75a5b8a52c3afa9e2e7906369bb37e..29ef204e79a6d1601017e121a26023c6ee90d5c2 100644
--- a/matlab/discretionary_policy/discretionary_policy_1.m
+++ b/matlab/discretionary_policy/discretionary_policy_1.m
@@ -42,6 +42,7 @@ if options_.steadystate_flag
     [ys,M_.params,info] = evaluate_steady_state_file(endo_steady_state,[exo_steady_state; exo_det_steady_state],M_, ...
                                                     options_,~options_.steadystate.nocheck);
     if info(1)
+        params=M_.params;
         return;
     end
 else