diff --git a/include/class.dept.php b/include/class.dept.php
index 0eae779c9eb13f19c225f0c2ff6e15d366fb28b2..f00ba0205ad5ee9d16a5faf022b2703afc805ef1 100644
--- a/include/class.dept.php
+++ b/include/class.dept.php
@@ -308,12 +308,15 @@ class Dept {
         return ($cfg && $cfg->getDefaultDeptId() && ($name=Dept::getNameById($cfg->getDefaultDeptId())))?$name:null;
     }
 
-    function getDepartments( $publiconly=false) {
+    function getDepartments( $criteria=null) {
         
         $depts=array();
-        $sql ='SELECT dept_id, dept_name FROM '.DEPT_TABLE;
-        if($publiconly)
-            $sql.=' WHERE ispublic=1';
+        $sql='SELECT dept_id, dept_name FROM '.DEPT_TABLE.' WHERE 1';
+        if($criteria['publiconly'])
+            $sql.=' AND  ispublic=1';
+
+        if(($manager=$criteria['manager']))
+            $sql.=' AND manager_id='.db_input(is_object($manager)?$manager->getId():$manager);
 
         if(($res=db_query($sql)) && db_num_rows($res)) {
             while(list($id, $name)=db_fetch_row($res))
@@ -324,7 +327,7 @@ class Dept {
     }
 
     function getPublicDepartments() {
-        return self::getDepartments(true);
+        return self::getDepartments(array('publiconly'=>true));
     }
 
     function create($vars, &$errors) {