diff --git a/include/class.thread.php b/include/class.thread.php
index 93774d9220c94e4e3dbcdf16259ccbb7f5d7c034..3393043e60e91aed5130ae70bf863e26c44c56e3 100644
--- a/include/class.thread.php
+++ b/include/class.thread.php
@@ -273,7 +273,7 @@ implements Searchable {
     function isReferred($to=null, $strict=false) {
 
         if (is_null($to) || !$this->referrals)
-            return ($this->referrals);
+            return ($this->referrals && $this->referrals->count());
 
         switch (true) {
         case $to instanceof Staff:
@@ -287,21 +287,24 @@ implements Searchable {
                 return false;
 
             // Referred to staff's department
-            if ($to->getDepts() && $this->referrals->filter(array(
-                            'object_id__in' => $to->getDepts(),
-                            'object_type'   => ObjectModel::OBJECT_TYPE_DEPT)))
+            if ($this->referrals->findFirst(array(
+                   'object_id__in' => $to->getDepts(),
+                   'object_type'   => ObjectModel::OBJECT_TYPE_DEPT)))
                 return true;
-            // Referred to staff's  team
-            if ($to->getTeams() && $this->referrals->filter(array(
+
+            // Referred to staff's teams
+            if ($to->getTeams() && $this->referrals->findFirst(array(
                             'object_id__in' => $to->getTeams(),
-                            'object_type'   => ObjectModel::OBJECT_TYPE_TEAM)))
+                            'object_type'   => ObjectModel::OBJECT_TYPE_TEAM
+                            )))
                 return true;
+
+            return false;
             break;
         case $to instanceof Dept:
             // Refered to the dept
-            if ($this->getReferral($to->getId(),
-                        ObjectModel::OBJECT_TYPE_DEPT))
-                return true;
+            return ($this->getReferral($to->getId(),
+                        ObjectModel::OBJECT_TYPE_DEPT));
             break;
         }