diff --git a/mo/email.py b/mo/email.py
index 972918a22e5b1f6779ce5484b0460e07165f95f7..14660593e398ef3a92c71ac12569afb198995e89 100644
--- a/mo/email.py
+++ b/mo/email.py
@@ -66,11 +66,11 @@ def send_user_email(user: db.User, subject: str, body: str) -> bool:
 
 
 def activate_url(token: str) -> str:
-    return config.WEB_ROOT + 'auth/activate?' + urllib.parse.urlencode({'token': token}, safe=':')
+    return config.WEB_ROOT + 'acct/activate?' + urllib.parse.urlencode({'token': token}, safe=':')
 
 
 def confirm_url(type: str, token: str) -> str:
-    return config.WEB_ROOT + f'auth/confirm/{type}?' + urllib.parse.urlencode({'token': token}, safe=':')
+    return config.WEB_ROOT + f'acct/confirm/{type}?' + urllib.parse.urlencode({'token': token}, safe=':')
 
 
 def contestant_list_url(contest: db.Contest, registered_only: bool) -> str:
diff --git a/mo/web/__init__.py b/mo/web/__init__.py
index b303ff34de05e973182bf138c8cf8bafc4fd772c..782dba3ebd9d1dc16d5b6fda3839e897eca294c3 100644
--- a/mo/web/__init__.py
+++ b/mo/web/__init__.py
@@ -142,7 +142,7 @@ def init_request():
         if not user:
             # Uživatel mezitím přestal existovat
             app.logger.error('Zrušena session pro neexistujícího uživatele uid=%s', session['uid'])
-            return mo.web.auth.logout()
+            return mo.web.acct.logout()
     else:
         user = None
 
@@ -217,7 +217,7 @@ except ImportError:
 
 # Většina webu je v samostatných modulech
 import mo.web.api
-import mo.web.auth
+import mo.web.acct
 import mo.web.jinja
 import mo.web.menu
 import mo.web.misc
diff --git a/mo/web/auth.py b/mo/web/acct.py
similarity index 98%
rename from mo/web/auth.py
rename to mo/web/acct.py
index 0e9506eb3c6f2b36e6e301a751e4fa9a3a32377b..cd3bc74e15d377bc877887ec678a6f6a2fbcab9d 100644
--- a/mo/web/auth.py
+++ b/mo/web/acct.py
@@ -48,7 +48,7 @@ def login_and_redirect(user: db.User, flash_msg: Optional[str] = None, url: Opti
     return redirect(url)
 
 
-@app.route('/auth/login', methods=('GET', 'POST'))
+@app.route('/acct/login', methods=('GET', 'POST'))
 def login():
     form = LoginForm(email=request.args.get('email'))
 
@@ -89,13 +89,13 @@ def login():
     return render_template('login.html', form=form)
 
 
-@app.route('/auth/logout', methods=('POST',))
+@app.route('/acct/logout', methods=('POST',))
 def logout():
     session.clear()
     return redirect(url_for('index'))
 
 
-@app.route('/auth/incarnate/<int:id>', methods=('POST',))
+@app.route('/acct/incarnate/<int:id>', methods=('POST',))
 def incarnate(id):
     if not g.user.is_admin:
         raise werkzeug.exceptions.Forbidden()
@@ -195,7 +195,7 @@ class ResetForm(FlaskForm):
 
 
 # URL je explicitně uvedeno v mo.email.activate_url
-@app.route('/auth/activate', methods=('GET', 'POST'))
+@app.route('/acct/activate', methods=('GET', 'POST'))
 def activate():
     token = request.args.get('token')
     if not token:
@@ -358,7 +358,7 @@ class Reg1Form(FlaskForm):
     submit = wtforms.SubmitField('Vytvořit účet')
 
 
-@app.route('/auth/create', methods=('GET', 'POST'))
+@app.route('/acct/create', methods=('GET', 'POST'))
 def create_acct():
     form = Reg1Form()
     reg1 = Reg1(form.token.data)
@@ -543,7 +543,7 @@ class Reg2Form(FlaskForm):
 
 
 # URL je explicitně uvedeno v mo.email.activate_url
-@app.route('/auth/confirm/r', methods=('GET', 'POST'))
+@app.route('/acct/confirm/r', methods=('GET', 'POST'))
 def confirm_reg():
     token = request.args.get('token')
     if token is None:
@@ -575,7 +575,7 @@ class ConfirmEmailForm(FlaskForm):
 
 
 # URL je explicitně uvedeno v mo.email.activate_url
-@app.route('/auth/confirm/e', methods=('GET', 'POST'))
+@app.route('/acct/confirm/e', methods=('GET', 'POST'))
 def confirm_email():
     reg2 = Reg2(request.args.get('token'), db.RegReqType.change_email)
     if reg2.status != RegStatus.ok:
@@ -603,7 +603,7 @@ class CancelResetForm(FlaskForm):
 
 
 # URL je explicitně uvedeno v mo.email.activate_url
-@app.route('/auth/confirm/p', methods=('GET', 'POST'))
+@app.route('/acct/confirm/p', methods=('GET', 'POST'))
 def confirm_reset():
     reg2 = Reg2(request.args.get('token'), db.RegReqType.reset_passwd)
     if reg2.status != RegStatus.ok:
diff --git a/mo/web/menu.py b/mo/web/menu.py
index 99f8946912341108f481cc68de4eef0511ca2e56..d4760913e2b797f5a73d2b41d6208a79f7d9fe86 100644
--- a/mo/web/menu.py
+++ b/mo/web/menu.py
@@ -44,7 +44,7 @@ def get_menu():
         items.append(MenuItem(url_for('user_settings'), name, classes=["right"]))
     else:
         items.append(MenuItem(url_for('create_acct'), "Založit účet", classes=["right"]))
-        items.append(MenuItem(url_for('login'), "Přihlásit se", active_prefix="/auth/", classes=["right"]))
+        items.append(MenuItem(url_for('login'), "Přihlásit se", active_prefix="/acct/", classes=["right"]))
 
     active = None
     for item in items: