diff --git a/include/class.dept.php b/include/class.dept.php
index 0d26f12a0bdfb1042d387be2091632a08765a8ec..e08d7339085935d2efae08d9008725b9a148f3a2 100644
--- a/include/class.dept.php
+++ b/include/class.dept.php
@@ -182,16 +182,8 @@ implements TemplateVariable {
                     'onvacation' => 0,
                 ));
             }
-            switch ($cfg->getAgentNameFormat()) {
-            case 'last':
-            case 'lastfirst':
-            case 'legal':
-                $members->order_by('lastname', 'firstname');
-                break;
-
-            default:
-                $members->order_by('firstname', 'lastname');
-            }
+
+            $members = Staff::nsort($members);
 
             if ($criteria)
                 return $members;
diff --git a/include/class.staff.php b/include/class.staff.php
index 6709bac0d90e6f71e5b71822315389e24e0b6dc6..0cd7960531bae94e671f3e10c0c293c5506aedfa 100644
--- a/include/class.staff.php
+++ b/include/class.staff.php
@@ -782,16 +782,7 @@ implements AuthenticatedUser, EmailContact, TemplateVariable {
             ));
         }
 
-        switch ($cfg->getAgentNameFormat()) {
-        case 'last':
-        case 'lastfirst':
-        case 'legal':
-            $members->order_by('lastname', 'firstname');
-            break;
-
-        default:
-            $members->order_by('firstname', 'lastname');
-        }
+        $members = self::nsort($members);
 
         $users=array();
         foreach ($members as $M) {
@@ -805,6 +796,23 @@ implements AuthenticatedUser, EmailContact, TemplateVariable {
         return self::getStaffMembers(array('available'=>true));
     }
 
+    static function nsort(QuerySet $qs, $path='', $format=null) {
+        global $cfg;
+
+        $format = $format ?: $cfg->getAgentNameFormat();
+        switch ($format) {
+        case 'last':
+        case 'lastfirst':
+        case 'legal':
+            $qs->order_by("{$path}lastname", "{$path}firstname");
+            break;
+        default:
+            $qs->order_by("${path}firstname", "${path}lastname");
+        }
+
+        return $qs;
+    }
+
     static function getIdByUsername($username) {
         $row = static::objects()->filter(array('username' => $username))
             ->values_flat('staff_id')->first();