diff --git a/mo/imports.py b/mo/imports.py
index 332845371d95707b1e7413dc63a52414fe76b523..96ad0f1302622b85d7027d392015548e32d6f38f 100644
--- a/mo/imports.py
+++ b/mo/imports.py
@@ -187,7 +187,7 @@ class Import:
 
         return r
 
-    def find_or_create_user(self, email: str, krestni: str, prijmeni: str, is_org: bool) -> Optional[db.User]:
+    def find_or_create_user(self, email: str, krestni: Optional[str], prijmeni: Optional[str], is_org: bool) -> Optional[db.User]:
         try:
             user, is_new = mo.users.find_or_create_user(email, krestni, prijmeni, is_org, reason='import')
         except mo.CheckError as e:
@@ -211,7 +211,7 @@ class Import:
 
         return pts
 
-    def find_or_create_participant(self, user: db.User, year: int, school_id: int, birth_year: int, grade: str) -> Optional[db.Participant]:
+    def find_or_create_participant(self, user: db.User, year: int, school_id: Optional[int], birth_year: Optional[int], grade: Optional[str]) -> Optional[db.Participant]:
         try:
             part, is_new = mo.users.find_or_create_participant(user, year, school_id, birth_year, grade, reason='import')
         except mo.CheckError as e:
@@ -432,28 +432,23 @@ class ContestImport(Import):
         assert isinstance(r, ContestImportRow)
         num_prev_errs = len(self.errors)
         email = self.parse_email(r.email)
-        krestni = self.parse_name(r.krestni)
-        prijmeni = self.parse_name(r.prijmeni)
-        school_place = self.parse_school(r.kod_skoly)
-        rocnik = self.parse_grade(r.rocnik, (school_place.school if school_place else None))
-        rok_naroz = self.parse_born(r.rok_naroz)
+        krestni = self.parse_name(r.krestni) if r.krestni else None
+        prijmeni = self.parse_name(r.prijmeni) if r.prijmeni else None
+        school_place = self.parse_school(r.kod_skoly) if r.kod_skoly else None
+        rocnik = self.parse_grade(r.rocnik, (school_place.school if school_place else None)) if r.rocnik else None
+        rok_naroz = self.parse_born(r.rok_naroz) if r.rok_naroz else None
         misto = self.parse_opt_place(r.kod_mista, 'místo')
         oblast = self.parse_opt_place(r.kod_oblasti, 'oblast')
 
         if (len(self.errors) > num_prev_errs
-                or email is None
-                or krestni is None
-                or prijmeni is None
-                or school_place is None
-                or rocnik is None
-                or rok_naroz is None):
+                or email is None):
             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, mo.current_year, school_place.place_id, rok_naroz, rocnik)
+        part = self.find_or_create_participant(user, mo.current_year, school_place.place_id if school_place else None, rok_naroz, rocnik)
         if part is None:
             return
 
diff --git a/mo/web/templates/doc_import.html b/mo/web/templates/doc_import.html
index 4a3055ee4b087dbff27d829529fcc6afe09d0085..163f9badd9770309f86d984b11b012593139bd48 100644
--- a/mo/web/templates/doc_import.html
+++ b/mo/web/templates/doc_import.html
@@ -20,16 +20,16 @@ když přidáte vlastní sloupce s novými názvy, budou se ignorovat.
 
 <h2>Import účastníků</h2>
 
-<p>Definovány jsou tyto sloupce (tučné jsou povinné):
+<p>Definovány jsou tyto sloupce (tučné jsou povinné, kurzívou jsou povinné pro zatím nezaregistrované účty):
 
 <table class=data>
 	<tr><th>Název<th>Obsah
 	<tr><td><b>email</b><td>E-mailová adresa
-	<tr><td><b>krestni</b><td>Křestní jméno
-	<tr><td><b>prijmeni</b><td>Příjmení
-	<tr><td><b>kod_skoly</b><td>Kód školy (viz katalog škol na tomto webu)
-	<tr><td><b>rocnik</b><td>Navštěvovaný ročník (třída). Pro základní školy je to číslo od 1 do 9, pro <i>k</i>-tý ročník <i>r</i>-leté střední školy má formát <i>k</i>/<i>r</i>.
-	<tr><td><b>rok_naroz</b><td>Rok narození
+	<tr><td><i>krestni</i><td>Křestní jméno
+	<tr><td><i>prijmeni</i><td>Příjmení
+	<tr><td><i>kod_skoly</i><td>Kód školy (viz katalog škol na tomto webu)
+	<tr><td><i>rocnik</i><td>Navštěvovaný ročník (třída). Pro základní školy je to číslo od 1 do 9, pro <i>k</i>-tý ročník <i>r</i>-leté střední školy má formát <i>k</i>/<i>r</i>.
+	<tr><td><i>rok_naroz</i><td>Rok narození
 	<tr><td>kod_mista<td>Pokud účastník soutěží někde jinde, je zde uveden kód oblasti, školy,
 		nebo speciálního soutěžního místa, kde se soutěž koná. Dozor na soutěžním místě
 		má pak právo odevzdávat za účastníka řešení.