diff --git a/mo/web/org_contest.py b/mo/web/org_contest.py
index 10cd5c65d228a9a6b2cdd555e24f5782d57d4951..5e61ae3d55704dff4d448dbbd2cfede5462701e6 100644
--- a/mo/web/org_contest.py
+++ b/mo/web/org_contest.py
@@ -1400,10 +1400,6 @@ def org_contest_advance(ct_id: int):
     def redirect_back():
         return redirect(ctx.url_for('org_contest'))
 
-    if contest.state != db.RoundState.preparing or master_contest.state != db.RoundState.preparing:
-        flash('Tato soutěž není ve stavu přípravy', 'danger')
-        return redirect_back()
-
     prev_round = get_prev_round(round)
     if not prev_round:
         return redirect_back()
@@ -1520,6 +1516,9 @@ def org_contest_advance(ct_id: int):
     for place_id in prev_pions_by_place_id:
         prev_pions_by_place_id[place_id].sort(key=lambda x: (x[1] or 0, x[0].user.sort_key()), reverse=True)
 
+    if contest.state != db.RoundState.preparing or master_contest.state != db.RoundState.preparing:
+        flash('Tato soutěž není ve stavu přípravy.', 'warning')
+
     if any(pc.state != db.RoundState.closed for pc in prev_contests):
         flash('Předchozí kolo dosud nebylo ukončeno. Počty bodů nemusí být finální.', 'warning')