diff --git a/mo/web/admin.py b/mo/web/admin.py
index 71a9e83a57d71f59e45f3c04c9127415faeb85e4..c31dc9d0009569bfe6c9c155912d6dceca07a68f 100644
--- a/mo/web/admin.py
+++ b/mo/web/admin.py
@@ -1,6 +1,7 @@
 # Web: Nástroje pro správce
 
 from flask import render_template, request
+from sqlalchemy.orm import joinedload
 
 import mo.db as db
 from mo.web import app
@@ -14,8 +15,10 @@ def admin_all_dsn():
         pager.validate()
 
     sess = db.get_session()
-    query = sess.query(db.EmailDSN).order_by(db.EmailDSN.arrived_at.desc())
+    query = (sess.query(db.EmailDSN)
+             .options(joinedload(db.EmailDSN.user), joinedload(db.EmailDSN.reg))
+             .order_by(db.EmailDSN.arrived_at.desc()))
     (count, query) = pager.apply_limits(query, pagesize=20)
     dsns = query.all()
 
-    return render_template('admin_dsn.html', dsns=dsns, pager=pager, count=count)
+    return render_template('admin_dsn.html', dsns=dsns, pager=pager, count=count, admin_list=True)
diff --git a/mo/web/templates/parts/dsn.html b/mo/web/templates/parts/dsn.html
index f7260c86299e87ae8124f016eeb7c069791d4610..06d0da2659b19cdadb04f5c85d81009028063dd4 100644
--- a/mo/web/templates/parts/dsn.html
+++ b/mo/web/templates/parts/dsn.html
@@ -6,6 +6,18 @@
 	<tr>
 		<th>Čas
 		<td>{{ dsn.arrived_at|time_and_timedelta }}
+	{% if admin_list %}
+	<tr>
+		<th>Pro koho
+		{% if dsn.user is not none %}
+			<td>Uživatel {{ dsn.user|user_link }}{{ dsn.user|user_flags }}
+			{% if dsn.user.dsn == dsn %} (primární DSN){% endif %}
+		{% elif dsn.reg_id is not none %}
+		<td>Registrace #{{dsn.reg_id}} ({{dsn.reg.type.name}})
+		{% else %}
+			<td>???
+		{% endif %}
+	{% endif %}
 	<tr>
 		<th>Kód chyby
 		<td>{{ dsn.status|dsn_status }}