diff --git a/mo/users.py b/mo/users.py
index 32c858ce08ac61166863fe801d3e3aacbb0ef0d5..f5fe5642bd3328ed36d899e84a7c8d10a1d71fcc 100644
--- a/mo/users.py
+++ b/mo/users.py
@@ -286,6 +286,7 @@ def expire_reg_requests():
 
 def request_reset_password(user: db.User, client: str) -> Optional[db.RegRequest]:
     logger.info('Login: Požadavek na reset hesla pro <%s>', user.email)
+    assert not user.is_admin
     rr = new_reg_request(db.RegReqType.reset_passwd, client)
     if rr:
         db.get_session().add(rr)
diff --git a/mo/web/acct.py b/mo/web/acct.py
index 4cb0451f63ea30d3c32717519b10f3f343ce3f0f..214da32dc193bc510c6d837d8b60ca42dffcc1c9 100644
--- a/mo/web/acct.py
+++ b/mo/web/acct.py
@@ -61,13 +61,16 @@ def login():
         app.logger.error('Login: Neznámý uživatel <%s>', email)
         flash('Neznámý uživatel', 'danger')
     elif form.reset.data:
-        rr = mo.users.request_reset_password(user, request.remote_addr)
-        if rr:
-            db.get_session().commit()
-            mo.email.send_password_reset_email(user, rr.email_token)
-            flash('Na uvedenou adresu byl odeslán e-mail s odkazem na obnovu hesla.', 'success')
+        if user.is_admin:
+            flash('Obnova hesla účtu správce není možná.', 'danger')
         else:
-            flash('Příliš časté požadavky na obnovu hesla.', 'danger')
+            rr = mo.users.request_reset_password(user, request.remote_addr)
+            if rr:
+                db.get_session().commit()
+                mo.email.send_password_reset_email(user, rr.email_token)
+                flash('Na uvedenou adresu byl odeslán e-mail s odkazem na obnovu hesla.', 'success')
+            else:
+                flash('Příliš časté požadavky na obnovu hesla.', 'danger')
     elif not form.passwd.data or not mo.users.check_password(user, form.passwd.data):
         app.logger.error('Login: Špatné heslo pro uživatele <%s>', email)
         flash('Chybné heslo', 'danger')