diff --git a/mo/web/org_contest.py b/mo/web/org_contest.py
index 76854a7912a16eb62eb253fa9d8178d25e295f56..367ef5368d8f63be704653522eb16d14a8cf7b5b 100644
--- a/mo/web/org_contest.py
+++ b/mo/web/org_contest.py
@@ -1495,10 +1495,11 @@ def org_contest_advance(contest_id: int):
         prev_pions = prev_pion_query.all()
 
         if form.boundary.data > 0:
+            round_subquery = sess.query(db.Round.round_id).filter_by(master_round_id=prev_round.round_id).subquery()
             accept_uids = (sess.query(db.Solution.user_id)
                            .select_from(db.Solution)
                            # Vybíráme úlohy, jejich round patří do stejné skupiny kol jako prev_round
-                           .join(db.Task, and_(db.Task.task_id == db.Solution.task_id, db.Task.round.master_round_id == prev_round.round_id))
+                           .join(db.Task, and_(db.Task.task_id == db.Solution.task_id, db.Task.round_id.in_(round_subquery)))
                            .filter(db.Solution.user_id.in_(prev_pion_query.with_entities(db.Participation.user_id).subquery()))
                            .group_by(db.Solution.user_id)
                            .having(func.sum(db.Solution.points) >= form.boundary.data)