diff --git a/flowspec/models.py b/flowspec/models.py
index b2d903154ea9c715f94f1b6fe7a8266413b54443..5a9f8fd20c3b19163e7b3376ec7b7ec7d3fe7ed4 100644
--- a/flowspec/models.py
+++ b/flowspec/models.py
@@ -170,6 +170,21 @@ class Route(models.Model):
         else:
             return None
 
+    @property
+    def applier_username_nice(self):
+        if self.applier:
+            if self.applier.first_name or self.applier.last_name:
+                fn = self.applier.first_name if self.applier.first_name else ""
+                ln = self.applier.last_name if self.applier.last_name else ""
+                ret = "{0} {1}".format(fn, ln).strip()
+            elif self.applier.email:
+                ret = self.applier.email
+            else:
+                ret = self.applier.username
+            return ret
+        else:
+            return None
+
     def __unicode__(self):
         return self.name
 
@@ -214,7 +229,7 @@ class Route(models.Model):
             peer = username.peer_tag
         else:
             peer = None
-        send_message("[%s] Adding rule %s. Please wait..." % (self.applier.username, self.name), peer)
+        send_message("[%s] Adding rule %s. Please wait..." % (self.applier_username_nice, self.name), peer)
         response = add.delay(self)
         logger.info('Got add job id: %s' % response)
         fqdn = Site.objects.get_current().domain
@@ -235,7 +250,7 @@ class Route(models.Model):
         user_mail = '%s' % self.applier.email
         user_mail = user_mail.split(';')
         send_new_mail(
-            settings.EMAIL_SUBJECT_PREFIX + 'Rule %s creation request submitted by %s' % (self.name, self.applier.username),
+            settings.EMAIL_SUBJECT_PREFIX + 'Rule %s creation request submitted by %s' % (self.name, self.applier_username_nice),
             mail_body,
             settings.SERVER_EMAIL, user_mail,
             get_peer_techc_mails(self.applier, username)
@@ -264,7 +279,7 @@ class Route(models.Model):
         send_message(
             '[%s] Editing rule %s. Please wait...' %
             (
-                self.applier.username,
+                self.applier_username_nice,
                 self.name
             ), peer
         )
@@ -291,7 +306,7 @@ class Route(models.Model):
         user_mail = '%s' % self.applier.email
         user_mail = user_mail.split(';')
         send_new_mail(
-            settings.EMAIL_SUBJECT_PREFIX + 'Rule %s edit request submitted by %s' % (self.name, self.applier.username),
+            settings.EMAIL_SUBJECT_PREFIX + 'Rule %s edit request submitted by %s' % (self.name, self.applier_username_nice),
             mail_body, settings.SERVER_EMAIL, user_mail,
             get_peer_techc_mails(self.applier, username)
         )
@@ -323,7 +338,7 @@ class Route(models.Model):
             peer = None
         send_message(
             '[%s] Suspending rule %s. %sPlease wait...' % (
-                self.applier.username,
+                self.applier_username_nice,
                 self.name,
                 reason_text
             ), peer
@@ -351,7 +366,7 @@ class Route(models.Model):
         user_mail = '%s' % self.applier.email
         user_mail = user_mail.split(';')
         send_new_mail(
-            settings.EMAIL_SUBJECT_PREFIX + 'Rule %s removal request submitted by %s' % (self.name, self.applier.username),
+            settings.EMAIL_SUBJECT_PREFIX + 'Rule %s removal request submitted by %s' % (self.name, self.applier_username_nice),
             mail_body,
             settings.SERVER_EMAIL,
             user_mail,
diff --git a/flowspec/tasks.py b/flowspec/tasks.py
index bd9da9c3813eda80d7f0ae686e31a885cb4478e6..69d0b99995748dcf91fb2a18f3da5cd8f631b98b 100644
--- a/flowspec/tasks.py
+++ b/flowspec/tasks.py
@@ -61,22 +61,22 @@ def add(route, callback=None):
         route.status = status
         route.response = response
         route.save()
-        announce("[%s] Rule add: %s - Result: %s" % (route.applier, route.name, response), route.applier, route)
+        announce("[%s] Rule add: %s - Result: %s" % (route.applier_username_nice, route.name, response), route.applier, route)
     except TimeLimitExceeded:
         route.status = "ERROR"
         route.response = "Task timeout"
         route.save()
-        announce("[%s] Rule add: %s - Result: %s" % (route.applier, route.name, route.response), route.applier, route)
+        announce("[%s] Rule add: %s - Result: %s" % (route.applier_username_nice, route.name, route.response), route.applier, route)
     except SoftTimeLimitExceeded:
         route.status = "ERROR"
         route.response = "Task timeout"
         route.save()
-        announce("[%s] Rule add: %s - Result: %s" % (route.applier, route.name, route.response), route.applier, route)
+        announce("[%s] Rule add: %s - Result: %s" % (route.applier_username_nice, route.name, route.response), route.applier, route)
     except Exception:
         route.status = "ERROR"
         route.response = "Error"
         route.save()
-        announce("[%s] Rule add: %s - Result: %s" % (route.applier, route.name, route.response), route.applier, route)
+        announce("[%s] Rule add: %s - Result: %s" % (route.applier_username_nice, route.name, route.response), route.applier, route)
 
 
 @task(ignore_result=True)
@@ -95,22 +95,22 @@ def edit(route, callback=None):
         route.status = status
         route.response = response
         route.save()
-        announce("[%s] Rule edit: %s - Result: %s" % (route.applier, route.name, response), route.applier, route)
+        announce("[%s] Rule edit: %s - Result: %s" % (route.applier_username_nice, route.name, response), route.applier, route)
     except TimeLimitExceeded:
         route.status = "ERROR"
         route.response = "Task timeout"
         route.save()
-        announce("[%s] Rule edit: %s - Result: %s" % (route.applier, route.name, route.response), route.applier, route)
+        announce("[%s] Rule edit: %s - Result: %s" % (route.applier_username_nice, route.name, route.response), route.applier, route)
     except SoftTimeLimitExceeded:
         route.status = "ERROR"
         route.response = "Task timeout"
         route.save()
-        announce("[%s] Rule edit: %s - Result: %s" % (route.applier, route.name, route.response), route.applier, route)
+        announce("[%s] Rule edit: %s - Result: %s" % (route.applier_username_nice, route.name, route.response), route.applier, route)
     except Exception:
         route.status = "ERROR"
         route.response = "Error"
         route.save()
-        announce("[%s] Rule edit: %s - Result: %s" % (route.applier, route.name, route.response), route.applier, route)
+        announce("[%s] Rule edit: %s - Result: %s" % (route.applier_username_nice, route.name, route.response), route.applier, route)
 
 
 @task(ignore_result=True)
@@ -133,22 +133,22 @@ def delete(route, **kwargs):
         route.status = status
         route.response = response
         route.save()
-        announce("[%s] Suspending rule : %s%s- Result %s" % (route.applier, route.name, reason_text, response), route.applier, route)
+        announce("[%s] Suspending rule : %s%s- Result %s" % (route.applier_username_nice, route.name, reason_text, response), route.applier, route)
     except TimeLimitExceeded:
         route.status = "ERROR"
         route.response = "Task timeout"
         route.save()
-        announce("[%s] Suspending rule : %s - Result: %s" % (route.applier, route.name, route.response), route.applier, route)
+        announce("[%s] Suspending rule : %s - Result: %s" % (route.applier_username_nice, route.name, route.response), route.applier, route)
     except SoftTimeLimitExceeded:
         route.status = "ERROR"
         route.response = "Task timeout"
         route.save()
-        announce("[%s] Suspending rule : %s - Result: %s" % (route.applier, route.name, route.response), route.applier, route)
+        announce("[%s] Suspending rule : %s - Result: %s" % (route.applier_username_nice, route.name, route.response), route.applier, route)
     except Exception:
         route.status = "ERROR"
         route.response = "Error"
         route.save()
-        announce("[%s] Suspending rule : %s - Result: %s" % (route.applier, route.name, route.response), route.applier, route)
+        announce("[%s] Suspending rule : %s - Result: %s" % (route.applier_username_nice, route.name, route.response), route.applier, route)
 
 
 # May not work in the first place... proxy is not aware of Route models
@@ -176,7 +176,7 @@ def batch_delete(routes, **kwargs):
             route.response = response
             route.expires = datetime.date.today()
             route.save()
-            announce("[%s] Rule removal: %s%s- Result %s" % (route.applier, route.name, reason_text, response), route.applier, route)
+            announce("[%s] Rule removal: %s%s- Result %s" % (route.applier_username_nice, route.name, reason_text, response), route.applier, route)
     else:
         return False
 
diff --git a/flowspec/views.py b/flowspec/views.py
index 3d58ac4deeb8f0748fbd0645f87817dd0e625e2f..d61a31fab64ec5647c71d9d45446a93c39cbff31 100644
--- a/flowspec/views.py
+++ b/flowspec/views.py
@@ -178,7 +178,7 @@ def group_routes_ajax(request):
             query |= Q(applier__userprofile__in=peer.user_profile.all())
         all_group_routes = Route.objects.filter(query)
     jresp = {}
-    routes = build_routes_json(all_group_routes)
+    routes = build_routes_json(all_group_routes, request.user.is_superuser)
     jresp['aaData'] = routes
     return HttpResponse(json.dumps(jresp), mimetype='application/json')
 
@@ -199,12 +199,12 @@ def overview_routes_ajax(request):
     if request.user.is_superuser or request.user.has_perm('accounts.overview'):
         all_group_routes = Route.objects.all()
     jresp = {}
-    routes = build_routes_json(all_group_routes)
+    routes = build_routes_json(all_group_routes, request.user.is_superuser)
     jresp['aaData'] = routes
     return HttpResponse(json.dumps(jresp), mimetype='application/json')
 
 
-def build_routes_json(groutes):
+def build_routes_json(groutes, is_superuser):
     routes = []
     for r in groutes.prefetch_related(
             'applier',
@@ -229,14 +229,13 @@ def build_routes_json(groutes):
         rd['status'] = r.status
         # in case there is no applier (this should not occur)
         try:
-            if r.applier.first_name or r.applier.last_name:
-                fn = r.applier.first_name if r.applier.first_name else ""
-                ln = r.applier.last_name if r.applier.last_name else ""
-                rd['applier'] = "{0} {1}".format(fn, ln).strip()
-            elif r.applier.email:
-                rd['applier'] = r.applier.email
-            else:
-                rd['applier'] = r.applier.username
+            #rd['applier'] = r.applier.username
+            userinfo = r.applier_username_nice
+            #if is_superuser:
+            #  applier_username = r.applier.username
+            #  if applier_username != userinfo:
+            #    userinfo += " ("+applier_username+")"
+            rd['applier'] = userinfo
         except:
             rd['applier'] = 'unknown'
             rd['peer'] = ''
@@ -885,6 +884,7 @@ def routedetails(request, route_slug):
       'route': route, 
       'mytime': now, 
       'tz' : settings.TIME_ZONE,
+      'is_superuser' : request.user.is_superuser,
       'route_comments_len' : len(str(route.comments))
       })
 
diff --git a/templates/dashboard.html b/templates/dashboard.html
index c632ef3a8da4956eaecf689a9af5af9fbe9fbc05..cc0ac6e560669a33e9a05c8ed3cd58af8b3b6059 100644
--- a/templates/dashboard.html
+++ b/templates/dashboard.html
@@ -66,7 +66,7 @@
                                         <div class="timeline-heading">
                                             <h4 class="timeline-title"><a href="{{ route.get_absolute_url }}">{{route.name}}</a></h4>
                                             <p>
-                                                <small class="text-muted"><i class="fa fa-pencil-square-o"></i> {% trans "Last update" %}: {{route.last_updated}} {% trans "by" %} {{route.applier}}</small>
+                                                <small class="text-muted"><i class="fa fa-pencil-square-o"></i> {% trans "Last update" %}: {{route.last_updated}} {% trans "by" %} {{route.applier_username_nice}}</small>
                                             </p>
                                             <p>
                                                 <small class="text-muted"><i class="fa fa-clock-o"></i> {% trans "Expires" %}: {{ route.expires|date:"d M y" }}</small>
diff --git a/templates/flowspy/route_details.html b/templates/flowspy/route_details.html
index dc24a79203a14de1cc9c2767631e73c051130b1b..076f497f86da6996b90e41e3c71e2f6dafccd507 100644
--- a/templates/flowspy/route_details.html
+++ b/templates/flowspy/route_details.html
@@ -25,7 +25,9 @@ function myreloadPage() {
     </div>
      <div class="col-md-12">
         <div>
-            <i class="fa fa-pencil-square-o"></i> {% trans "Last rule edit" %}: {{route.last_updated}} {% trans "by" %} {{route.applier}}
+            <i class="fa fa-pencil-square-o"></i> {% trans "Last rule edit" %}: {{route.last_updated}} {% trans "by" %} {{route.applier_username_nice}} 
+            {% if is_superuser %} ({{route.applier}}) {% endif %}
+
         </div>
         <div>
             <h2>{% trans 'About' %}</h2>
diff --git a/templates/rule_action.txt b/templates/rule_action.txt
index e88b2d5dece2e4a3857678e16249e4b24487ca76..d156753b8ddafed6f5930c0a58983c8c51c18f98 100644
--- a/templates/rule_action.txt
+++ b/templates/rule_action.txt
@@ -1,7 +1,7 @@
 {% load tofqdn %}{% ifequal action 'expires' %}Rule {{route.name}} expires {% ifequal expiration_days 0 %}today{% else%}in {{expiration_days}} day{{ expiration_days|pluralize }}{% endifequal %}{% else %}A new rule {{action}} job has spawned
 
 Peer: {{peer.peer_name}}
-User {{route.applier.username}} requested the {{action}} of the following rule from address {{address}} {% if address|tofqdn %}({{address|tofqdn}}){% endif %}:
+User {{route.applier_username_nice}} requested the {{action}} of the following rule from address {{address}} {% if address|tofqdn %}({{address|tofqdn}}){% endif %}:
 
 Rule name: {{route.name}}{% endifequal %}