diff --git a/include/class.dept.php b/include/class.dept.php
index 44bf6561ebbb33ae92b357fdd7e2034f6aab4166..0fb59d36faffdbb941275e3f364213062f955b4e 100644
--- a/include/class.dept.php
+++ b/include/class.dept.php
@@ -275,7 +275,11 @@ class Dept {
     function delete() {
         global $cfg;
 
-        if(!$cfg || $this->getId()==$cfg->getDefaultDeptId() || $this->getNumUsers())
+        if(!$cfg
+                // Default department cannot be deleted
+                || $this->getId()==$cfg->getDefaultDeptId()
+                // Department  with users cannot be deleted
+                || $this->getNumUsers())
             return 0;
 
         $id=$this->getId();
@@ -286,8 +290,12 @@ class Dept {
             db_query('UPDATE '.TICKET_TABLE.' SET dept_id='.db_input($cfg->getDefaultDeptId()).' WHERE dept_id='.db_input($id));
             //Move Dept members: This should never happen..since delete should be issued only to empty Depts...but check it anyways
             db_query('UPDATE '.STAFF_TABLE.' SET dept_id='.db_input($cfg->getDefaultDeptId()).' WHERE dept_id='.db_input($id));
-            //make help topic using the dept default to default-dept.
-            db_query('UPDATE '.TOPIC_TABLE.' SET dept_id='.db_input($cfg->getDefaultDeptId()).' WHERE dept_id='.db_input($id));
+
+            // Clear any settings using dept to default back to system default
+            db_query('UPDATE '.TOPIC_TABLE.' SET dept_id=0 WHERE dept_id='.db_input($id));
+            db_query('UPDATE '.EMAIL_TABLE.' SET dept_id=0 WHERE dept_id='.db_input($id));
+            db_query('UPDATE '.FILTER_TABLE.' SET dept_id=0 WHERE dept_id='.db_input($id));
+
             //Delete group access
             db_query('DELETE FROM '.GROUP_DEPT_TABLE.' WHERE dept_id='.db_input($id));
         }