diff --git a/mo/imports.py b/mo/imports.py
index f0eedb2c30a10d70f18f09c794192f7106895974..d4be97126dbc60c3341da69a2b539ae3932a8697 100644
--- a/mo/imports.py
+++ b/mo/imports.py
@@ -469,6 +469,7 @@ class ContestImport(Import):
 
     def setup(self):
         assert self.round is not None
+        assert not self.round.is_subround()
 
     def import_row(self, r: mo.csv.Row):
         assert isinstance(r, ContestImportRow)
@@ -665,11 +666,16 @@ class PointsImport(Import):
             return self.error('Soutěžící v tomto kole soutěží vícekrát, neumím zpracovat')
         pion, sol = pion_sols[0]
 
+        if not self.round.is_subround():
+            contest = pion.contest
+        else:
+            contest = sess.query(db.Contest).filter_by(round=self.round, master_contest_id=pion.contest_id).one()
+
         if self.contest is not None:
-            if pion.contest != self.contest:
+            if contest != self.contest:
                 return self.error('Soutěžící nesoutěží v ' + self.round.get_level().name_locative('tomto', 'této', 'tomto'))
 
-        rights = self.gatekeeper.rights_for_contest(pion.contest)
+        rights = self.gatekeeper.rights_for_contest(contest)
         if not rights.can_edit_points():
             return self.error('Nemáte právo na úpravu bodů')
 
diff --git a/mo/web/templates/user_contest.html b/mo/web/templates/user_contest.html
index 4c68aa93e191bb6c2494d1ba2a277abf2bda83e6..5f8e51537d955013e670638b2db61fdd201f31f1 100644
--- a/mo/web/templates/user_contest.html
+++ b/mo/web/templates/user_contest.html
@@ -90,8 +90,8 @@ Pokud si s tvorbou PDF nevíte rady, zkuste se podívat do <a href='https://docs
 			<td>
 				{% if sol.final_feedback_obj %}
 				<a href='{{ url_for('user_paper', contest_id=contest.contest_id, paper_id=sol.final_feedback_obj.paper_id) }}'>
-					{{ (sol.final_feedback_obj.uploaded_at if sol.final_feedback_obj else None)|timeformat }}
-					({{ sol.final_feedback_obj.pages|inflected('strana', 'strany', 'stran') }})
+					{{ sol.final_feedback_obj.uploaded_at|timeformat }}
+					{% if sol.final_feedback_obj.pages != None %}({{ sol.final_feedback_obj.pages|inflected('strana', 'strany', 'stran') }}){% endif %}
 				</a>
 				{% endif %}
 				{% if sol.note %}<span title="Existuje poznámka k řešení, viz detail úlohy">🛈</span>{% endif %}
diff --git a/mo/web/templates/user_contest_task.html b/mo/web/templates/user_contest_task.html
index acb0086de6868f64c8227b524c28f36b87e5d43a..2521f054dc8d76297b3ca6e24943574a13c635fa 100644
--- a/mo/web/templates/user_contest_task.html
+++ b/mo/web/templates/user_contest_task.html
@@ -47,7 +47,7 @@
 	<tr><th>Získané body:<td>{% if sol.points %}{{ sol.points|inflected("bod", "body", "bodů") }}{% else %}nebyly přiděleny žádné body{% endif %}
 	{% if sol.final_feedback_obj %}
 	<tr><th>Opravené řešení:<td><a class="btn btn-xs btn-primary" href="{{ url_for('user_paper', contest_id=contest.contest_id, paper_id=sol.final_feedback_obj.paper_id) }}">Zobrazit</a>
-		({{ sol.final_feedback_obj.pages|inflected('stránka', 'stránky', 'stránek') }}, {{ sol.final_feedback_obj.bytes }} bajtů)
+		{% if sol.final_feedback_obj.pages != None %}({{ sol.final_feedback_obj.pages|inflected('stránka', 'stránky', 'stránek') }}, {{ sol.final_feedback_obj.bytes }} bajtů){% endif %}
 	{% endif %}
 	{% if sol.note %}
 	<tr><th>Poznámka od organizátorů:<td style="white-space: pre-line;">{{ sol.note }}
diff --git a/setup.py b/setup.py
index 549c6edbc0b694664fcb2e8e0cd9a76597fd98f0..385f136b41905012fba661073b7b9e6dea4004b0 100644
--- a/setup.py
+++ b/setup.py
@@ -13,6 +13,7 @@ setuptools.setup(
         'bin/create-round',
         'bin/create-user',
         'bin/export-orgs',
+        'bin/fix-submits',
         'bin/import-points',
         'bin/merge-users',
         'bin/p-score',