diff --git a/include/class.dept.php b/include/class.dept.php
index 93f92d754ad613b3afe4ad7b3b9655ba211b6d15..ef6c28d87c9b883d46e3e34dc633eda7c7ad3815 100644
--- a/include/class.dept.php
+++ b/include/class.dept.php
@@ -160,10 +160,8 @@ implements TemplateVariable {
         return count($this->getMembers());
     }
 
-    function getMembers($criteria=null) {
-        global $cfg;
-
-        if (!$this->_members || $criteria) {
+    function getMembers() {
+        if (!isset($this->_members)) {
             $members = Staff::objects()
                 ->distinct('staff_id')
                 ->constrain(array(
@@ -178,34 +176,23 @@ implements TemplateVariable {
                     'dept_access__dept_id' => $this->getId(),
                 )));
 
-            // TODO: Consider moving this into ::getAvailableMembers
-            if ($criteria && $criteria['available']) {
-                $members->filter(array(
-                    'isactive' => 1,
-                    'onvacation' => 0,
-                ));
-            }
-
-            $members = Staff::nsort($members);
-
-            if ($criteria)
-                return $members;
-
-            $this->_members = $members;
+            $this->_members = Staff::nsort($members);
         }
         return $this->_members;
     }
 
     function getAvailableMembers() {
-        return $this->getMembers(array('available'=>1));
+        $members = clone $this->getMembers();
+        return $members->filter(array(
+            'isactive' => 1,
+            'onvacation' => 0,
+        ));
     }
 
     function getPrimaryMembers() {
-
         if (!isset($this->_primary_members)) {
             $members = clone $this->getMembers();
             $members->filter(array('dept_id' =>$this->getId()));
-            $members = Staff::nsort($members);
             $this->_primary_members = $members->all();
         }
 
@@ -213,21 +200,20 @@ implements TemplateVariable {
     }
 
     function getExtendedMembers() {
-
         if (!isset($this->_exended_members)) {
             // We need a query set so we can sort the names
             $members = StaffDeptAccess::objects();
             $members->filter(array('dept_id' => $this->getId()));
             $members = Staff::nsort($members, 'staff__');
             $extended = array();
-            foreach($members->all() as $member) {
-                if (!$member->staff) continue;
+            foreach($members as $member) {
+                if (!$member->staff)
+                    continue;
                 // Annoted the staff model with alerts and role
-                $extended[] =  new AnnotatedModel($member->staff, array(
-                            'alerts'  => $member->isAlertsEnabled(),
-                            'role_id' => $member->role_id,
-                            )
-                        );
+                $extended[] = new AnnotatedModel($member->staff, array(
+                    'alerts'  => $member->isAlertsEnabled(),
+                    'role_id' => $member->role_id,
+                ));
             }
 
             $this->_extended_members = $extended;
@@ -238,7 +224,6 @@ implements TemplateVariable {
 
     // Get members  eligible members only
     function getAssignees() {
-
         $members = clone $this->getAvailableMembers();
         // If restricted then filter to primary members ONLY!
         if ($this->assignMembersOnly())
@@ -325,21 +310,19 @@ implements TemplateVariable {
     }
 
     function isManager($staff) {
-
-        if(is_object($staff)) $staff=$staff->getId();
+        if (is_object($staff))
+            $staff = $staff->getId();
 
         return ($this->getManagerId() && $this->getManagerId()==$staff);
     }
 
     function isMember($staff) {
-
         if (is_object($staff))
             $staff = $staff->getId();
 
-        $members = $this->getMembers() ?: $this->members;
-
-        return ($members->findFirst(array(
-                        'staff_id' => $staff)));
+        return $members->getIterator()->findFirst(array(
+            'staff_id' => $staff
+        ));
     }
 
     function isPublic() {
diff --git a/include/class.forms.php b/include/class.forms.php
index 627cd5a72c1cbfc99a826abd0a89503bbc61fd6f..318adbbc12b4f3053921f9b13d63f8e10cfa3718 100644
--- a/include/class.forms.php
+++ b/include/class.forms.php
@@ -2281,7 +2281,7 @@ class AssigneeField extends ChoiceField {
             $criteria = $this->getCriteria();
             $agents = array();
             if (($dept=$config['dept']) && $dept->assignMembersOnly()) {
-                if (($members = $dept->getMembers($criteria)))
+                if (($members = $dept->getAvailableMembers()))
                     foreach ($members as $member)
                         $agents[$member->getId()] = $member;
             } else {