diff --git a/mo/util_dsn.py b/mo/util_dsn.py
new file mode 100644
index 0000000000000000000000000000000000000000..b442e2561d4656561cdd89a710c473a8901eed6c
--- /dev/null
+++ b/mo/util_dsn.py
@@ -0,0 +1,28 @@
+# Utility na práci s mailovými nedoručenkami
+
+from typing import Optional
+
+
+dsn_explanation = {
+    '4.2.2': 'schránka je plná',
+    '4.4.1': 'server nepřijímá spojení',
+    '5.1.1': 'adresa neexistuje',
+    '5.1.10': 'doména nepřijímá poštu',         # Null MX
+    '5.2.1': 'schránka je zablokována',
+    '5.2.2': 'schránka je plná',
+    '5.4.1': 'server nepřijímá spojení',
+    '5.4.6': 'cyklické přeposílání pošty',
+    '5.4.14': 'cyklické přeposílání pošty',     # nestandardní status od MS Exchange
+    '5.7.1': 'příjem pošty zakázán pravidly cílové sítě',
+}
+
+
+def format_dsn_status(status: Optional[str]) -> str:
+    if not status:
+        return '–'
+    else:
+        explain = dsn_explanation.get(status)
+        if explain:
+            return f'{status} – {explain}'
+        else:
+            return status
diff --git a/mo/web/jinja.py b/mo/web/jinja.py
index 2a890c51434ce4960bc27fdb3557ba42af5460f5..6df9522b145eeed32face2372f84428444e8bdcd 100644
--- a/mo/web/jinja.py
+++ b/mo/web/jinja.py
@@ -14,6 +14,7 @@ import mo.place_level
 import mo.points
 from mo.rights import Right
 from mo.util import assert_not_none
+from mo.util_dsn import format_dsn_status
 import mo.util_format as util_format
 from mo.web import app
 from mo.web.org_place import place_breadcrumbs
@@ -69,6 +70,7 @@ jg.update(Right=Right)
 jg.update(place_breadcrumbs=place_breadcrumbs)
 # Funkce asset_url se přidává v mo.ext.assets
 
+jf.update(dsn_status=format_dsn_status)
 jf.update(user_url=user_url)
 
 
diff --git a/mo/web/templates/parts/dsn.html b/mo/web/templates/parts/dsn.html
index 5feed0194e76aad13702ad877ab671823276a3a6..f7260c86299e87ae8124f016eeb7c069791d4610 100644
--- a/mo/web/templates/parts/dsn.html
+++ b/mo/web/templates/parts/dsn.html
@@ -8,7 +8,7 @@
 		<td>{{ dsn.arrived_at|time_and_timedelta }}
 	<tr>
 		<th>Kód chyby
-		<td>{{ dsn.status }}
+		<td>{{ dsn.status|dsn_status }}
 	<tr>
 		<th>Chybová zpráva
 		<td>{{ dsn.diag_code|or_dash }}