diff --git a/mo/imports.py b/mo/imports.py
index fe075389c2f3a99cb1c2ca34dc559254740c9f58..e222be9105380801a8185ae0b978d2abc8eb920e 100644
--- a/mo/imports.py
+++ b/mo/imports.py
@@ -537,6 +537,10 @@ class ContestImport(Import):
         if oblast and not self.check_rights(self.round, oblast):
             return self.error(f'Nemáte práva na správu soutěže {oblast.name_locative()}')
 
+        contest = self.obtain_contest(self.round, oblast)
+        if contest is None:
+            return
+
         if len(self.errors) > num_prev_errs:
             return
 
@@ -549,31 +553,28 @@ class ContestImport(Import):
             return self.error(f'Účastník není rozlišitelný od toho z řádku {self.email_last_seen[email]}. Případné jmenovce vyřešte ručním přidáním účastníka.')
         self.email_last_seen[email] = self.line_number
 
-        user = self.find_or_create_user(email, krestni, prijmeni, is_org=False)
-        if user is None:
-            return
-
-        part = self.find_or_create_participant(user, self.round.year, school_place.place_id if school_place else None, rok_naroz, rocnik)
-        if part is None:
-            return
-
-        contest = self.obtain_contest(self.round, oblast)
-        if contest is None:
-            return
-
-        self.find_or_create_participation(user, contest, misto)
-
         # Kontrola na jmenovce
         sess = db.get_session()
         similar_users = (sess.query(db.User)
                              .join(db.Participation)
                              .filter(db.User.first_name == krestni)
                              .filter(db.User.last_name == prijmeni)
+                             .filter(db.User.email != email)
                              .filter(db.Participation.contest == contest)
-                             .filter(db.User != user)
                              .all())
         if similar_users:
-            self.warning('Účastník stejného jména a příjmení už na tomto místě soutěží, ověřte prosím, zda to není duplicita')
+            self.warning('Účastník stejného jména a příjmení už na tomto místě soutěží, nepřidáváme ho znovu. Případné jmenovce vyřešte ručním přidáním účastníka.')
+            return
+
+        user = self.find_or_create_user(email, krestni, prijmeni, is_org=False)
+        if user is None:
+            return
+
+        part = self.find_or_create_participant(user, self.round.year, school_place.place_id if school_place else None, rok_naroz, rocnik)
+        if part is None:
+            return
+
+        self.find_or_create_participation(user, contest, misto)
 
     def get_after_import_message(self) -> str:
         return f'Importováno ({self.cnt_rows} řádků, založeno {self.cnt_new_users} uživatelů, {self.cnt_new_participations} účastí, {self.cnt_new_contests} soutěží)'