diff --git a/mo/score.py b/mo/score.py
index 29f112cbe628c769f065928c41c3324767a7179c..e474ffdb8fb5691e63f8f5c92fac5863d70421b8 100644
--- a/mo/score.py
+++ b/mo/score.py
@@ -360,7 +360,7 @@ class Score:
                 sol_points = {}
                 for task_id in self._tasks[step].keys():
                     sol_points[task_id] = 0
-                for sol in result._sols[0].values():
+                for sol in result._sols[step].values():
                     if sol.points:
                         sol_points[sol.task_id] = -sol.points  # sestupné třídění
 
@@ -370,10 +370,10 @@ class Score:
 
                 if result.successful or not self.want_successful:
                     # Primárně podle počtu získaných bodů, sekundárně podle bodů od maxima, terciárně podle bodů od nejobtížnější
-                    result._order_key.extend((total_points, points_from_max, points_from_difficult))
+                    result._order_key.append((total_points, points_from_max, points_from_difficult))
                 else:
                     # Neúspěšné řešitele třídíme podle počtu získaných bodů, sekundárně podle jména, jednoznačně podle user_id
-                    result._order_key.extend((total_points, result.user.name_sort_key(), result.user.user_id))
+                    result._order_key.append((total_points, result.user.name_sort_key(), result.user.user_id))
 
             # Otestujeme, jestli teď existují sdílená místa
             if not self._exists_same_order_key():
diff --git a/mo/web/org_score.py b/mo/web/org_score.py
index 48dda81ecef479354e5a690b3a9d105704f1a359..a648bc74e98e2f50593d1fdacc1ed8123bef47b2 100644
--- a/mo/web/org_score.py
+++ b/mo/web/org_score.py
@@ -1,6 +1,6 @@
 from flask import render_template, request, g
 from flask.helpers import url_for
-from typing import List, Optional
+from typing import List, Optional, Union
 import werkzeug.exceptions
 
 import mo