diff --git a/mo/db.py b/mo/db.py
index 95184e96b0eb92f939fdc8199f61aa3407b3dc29..f24e55c8263bf239562b85216e7a8c2a6c36e8da 100644
--- a/mo/db.py
+++ b/mo/db.py
@@ -118,15 +118,8 @@ class Place(Base):
         return len(PlaceType.choices(level=self.level + 1)) > 0
 
 
-# Předpokládáme, že za běhu aplikace se root nezmění
-root_place_cache: Optional[Place] = None
-
-
 def get_root_place():
-    global root_place_cache
-    if root_place_cache is None:
-        root_place_cache = get_session().query(Place).filter_by(parent=None).one()
-    return root_place_cache
+    return get_session().query(Place).filter_by(parent=None).one()
 
 
 def get_place_by_code(code: str, fetch_school: bool = False) -> Optional[Place]:
diff --git a/mo/imports.py b/mo/imports.py
index 6d59a2ca9a4b0c8e36cc30d9a4e8b7135a388453..72c7b7b3dc98fdff4878118727dd51225f15254a 100644
--- a/mo/imports.py
+++ b/mo/imports.py
@@ -572,9 +572,11 @@ class JudgeImport(Import):
     log_msg_prefix = 'Opravovatelé'
     log_details = {'action': 'import-judges'}
     template_basename = 'sablona-oprav'
+    root_place: db.Place
 
     def setup(self):
         assert self.round is not None
+        self.root_place = db.get_root_place()
 
     def import_row(self, r: mo.csv.Row):
         assert isinstance(r, JudgeImportRow)
@@ -595,7 +597,7 @@ class JudgeImport(Import):
             return
 
         contest = self.obtain_contest(oblast, allow_none=True)
-        place = contest.place if contest else db.get_root_place()
+        place = contest.place if contest else self.root_place
         if not self.check_rights(place):
             return self.error(f'K místu "{place.get_code()}" nemáte práva na správu soutěže')