diff --git a/include/class.dept.php b/include/class.dept.php
index 4e42d9335fca4fe40f339266012c8f400868100e..49ff05a8b473c541c71a8770cc066ff693b3e03f 100644
--- a/include/class.dept.php
+++ b/include/class.dept.php
@@ -62,11 +62,7 @@ implements TemplateVariable {
     const ALERTS_DEPT_AND_GROUPS = 1;
     const ALERTS_DEPT_ONLY = 0;
 
-    function getConfig() {
-        if (!isset($this->config))
-            $this->config = new Config('dept.'. $this->getId());
-        return $this->config;
-    }
+    const FLAG_ASSIGN_MEMBERS_ONLY = 0x0001;
 
     function asVar() {
         return $this->getName();
@@ -301,7 +297,7 @@ implements TemplateVariable {
     }
 
     function assignMembersOnly() {
-        return $this->getConfig()->get('assign_members_only', 0);
+        return $this->flags & self::FLAG_ASSIGN_MEMBERS_ONLY;
     }
 
     function isGroupMembershipEnabled() {
@@ -314,11 +310,12 @@ implements TemplateVariable {
             foreach (static::$meta['joins'] as $k => $v)
                 unset($ht[$k]);
 
+        $ht['assign_members_only'] = $this->flags & self::FLAG_ASSIGN_MEMBERS_ONLY;
         return $ht;
     }
 
     function getInfo() {
-        return $this->getConfig()->getInfo() + $this->getHashtable();
+        return $this->getHashtable();
     }
 
     function getAllowedGroups() {
@@ -368,7 +365,6 @@ implements TemplateVariable {
 
     function updateSettings($vars) {
         $this->updateGroups($vars['groups'] ?: array(), $vars);
-        $this->getConfig()->set('assign_members_only', $vars['assign_members_only']);
         $this->path = $this->getFullPath();
         $this->save();
         return true;
@@ -386,10 +382,8 @@ implements TemplateVariable {
             return 0;
         }
 
-        parent::delete();
         $id = $this->getId();
-        $sql='DELETE FROM '.DEPT_TABLE.' WHERE id='.db_input($id).' LIMIT 1';
-        if(db_query($sql) && ($num=db_affected_rows())) {
+        if (parent::delete()) {
             // DO SOME HOUSE CLEANING
             //Move tickets to default Dept. TODO: Move one ticket at a time and send alerts + log notes.
             db_query('UPDATE '.TICKET_TABLE.' SET dept_id='.db_input($cfg->getDefaultDeptId()).' WHERE dept_id='.db_input($id));
@@ -403,9 +397,6 @@ implements TemplateVariable {
 
             //Delete group access
             db_query('DELETE FROM '.GROUP_DEPT_TABLE.' WHERE dept_id='.db_input($id));
-
-            // Destrory config settings
-            $this->getConfig()->destroy();
         }
 
         return $num;
@@ -602,6 +593,7 @@ implements TemplateVariable {
         $this->group_membership = $vars['group_membership'];
         $this->ticket_auto_response = isset($vars['ticket_auto_response'])?$vars['ticket_auto_response']:1;
         $this->message_auto_response = isset($vars['message_auto_response'])?$vars['message_auto_response']:1;
+        $this->flags = isset($vars['assign_members_only']) ? self::FLAG_ASSIGN_MEMBERS_ONLY : 0;
 
         if ($this->save())
             return $this->updateSettings($vars);
diff --git a/include/upgrader/streams/core/9143a511-00000000.cleanup.sql b/include/upgrader/streams/core/9143a511-00000000.cleanup.sql
index 6df31117b1982e1e2e612b1b0c27d810b06346e9..1ebb607cac3537e1949a77f7e6890fd88723fbf5 100644
--- a/include/upgrader/streams/core/9143a511-00000000.cleanup.sql
+++ b/include/upgrader/streams/core/9143a511-00000000.cleanup.sql
@@ -44,3 +44,6 @@ EXECUTE stmt;
 ALTER TABLE `%TABLE_PREFIX%team`
     DROP `isenabled`,
     DROP `noalerts`;
+
+DELETE FROM `%TABLE_PREFIX%config`
+WHERE `key`='assign_members_only' AND `namespace` LIKE 'dept.%';
diff --git a/include/upgrader/streams/core/9143a511-00000000.patch.sql b/include/upgrader/streams/core/9143a511-00000000.patch.sql
index 3676eb32fe62e84f2261988d117ac428ac53441c..f723319f8e612069d3b0f0df8605fcc90ef8a51e 100644
--- a/include/upgrader/streams/core/9143a511-00000000.patch.sql
+++ b/include/upgrader/streams/core/9143a511-00000000.patch.sql
@@ -54,6 +54,15 @@ UPDATE `%TABLE_PREFIX%team`
   SET `flags` = CASE WHEN `isenabled` THEN 1 ELSE 0 END
               + CASE WHEN `noalerts` THEN 2 ELSE 0 END;
 
+-- Migrate %config[namespace=dept.x, key=alert_members_only]
+ALTER TABLE `%TABLE_PREFIX%department`
+  ADD `flags` int(10) unsigned NOT NULL default 0 AFTER `manager_id`;
+
+UPDATE `%TABLE_PREFIX%department` A1
+  JOIN (SELECT `value` FROM `%TABLE_PREFIX%config`) `config`
+    ON (`config`.`namespace` = CONCAT('dept.', A1.`id`) AND `config`.`key` = 'assign_members_only')
+  SET A1.`flags` = 1 WHERE `config`.`value` != '';
+
 -- Finished with patch
 UPDATE `%TABLE_PREFIX%config`
     SET `value` = '00000000000000000000000000000000'
diff --git a/setup/inc/streams/core/install-mysql.sql b/setup/inc/streams/core/install-mysql.sql
index 48b808d9e36b418f17feac0aa4309e7ac7525bf5..8f9fe2311b7b2d4bbc7eb114370ad9faee76c84e 100644
--- a/setup/inc/streams/core/install-mysql.sql
+++ b/setup/inc/streams/core/install-mysql.sql
@@ -206,6 +206,7 @@ CREATE TABLE `%TABLE_PREFIX%department` (
   `email_id` int(10) unsigned NOT NULL default '0',
   `autoresp_email_id` int(10) unsigned NOT NULL default '0',
   `manager_id` int(10) unsigned NOT NULL default '0',
+  `flags` int(10) unsigned NOT NULL default 0,
   `name` varchar(128) NOT NULL default '',
   `signature` text NOT NULL,
   `ispublic` tinyint(1) unsigned NOT NULL default '1',