diff --git a/include/upgrader/streams/core/0d6099a6-98ad7d55.patch.sql b/include/upgrader/streams/core/0d6099a6-98ad7d55.patch.sql
index 35c654582659f8bb30eaddcc9fd1eef35eb68422..be6707ec63dc7f673ecb7c5f3373eb07cbd75812 100644
--- a/include/upgrader/streams/core/0d6099a6-98ad7d55.patch.sql
+++ b/include/upgrader/streams/core/0d6099a6-98ad7d55.patch.sql
@@ -15,11 +15,16 @@ CREATE TABLE `%TABLE_PREFIX%staff_dept_access` (
   KEY `dept_id` (`dept_id`)
 ) DEFAULT CHARSET=utf8;
 
+-- Expand staff -> group -> dept_access to staff -> dept_access
+-- At the same time, drop primary department from staff_dept_access
 INSERT INTO `%TABLE_PREFIX%staff_dept_access`
   (`staff_id`, `dept_id`, `role_id`)
-  SELECT A1.`staff_id`, A2.`dept_id`, A2.`role_id`
+  SELECT A1.`staff_id`, A2.`dept_id`,
+    CASE WHEN A2.`role_id` = 0 THEN A3.`role_id` ELSE A2.`role_id` END
   FROM `%TABLE_PREFIX%staff` A1
-  JOIN `%TABLE_PREFIX%group_dept_access` A2 ON (A1.`group_id` = A2.`group_id`);
+  JOIN `%TABLE_PREFIX%group_dept_access` A2 ON (A1.`group_id` = A2.`group_id`)
+  JOIN `%TABLE_PREFIX%group` A3 ON (A3.`id` = A1.`group_id`)
+  WHERE A2.`dept_id` != A1.`dept_id`;
 
 ALTER TABLE `%TABLE_PREFIX%staff`
   DROP `group_id`,
diff --git a/include/upgrader/streams/core/1ee831c8-36f6b328.cleanup.sql b/include/upgrader/streams/core/1ee831c8-36f6b328.cleanup.sql
index 0355df4757646be61acf5e727ed2761f233c38a1..2bbe6cba034b1486977c4f1fbec13403a1807b6f 100644
--- a/include/upgrader/streams/core/1ee831c8-36f6b328.cleanup.sql
+++ b/include/upgrader/streams/core/1ee831c8-36f6b328.cleanup.sql
@@ -1,17 +1,2 @@
--- drop old permissions from group table
-ALTER TABLE `%TABLE_PREFIX%group`
-    DROP `group_enabled`,
-    DROP `can_create_tickets`,
-    DROP `can_edit_tickets`,
-    DROP `can_post_ticket_reply`,
-    DROP `can_delete_tickets`,
-    DROP `can_close_tickets`,
-    DROP `can_assign_tickets`,
-    DROP `can_transfer_tickets`,
-    DROP `can_ban_emails`,
-    DROP `can_manage_premade`,
-    DROP `can_manage_faq`,
-    DROP `can_view_staff_stats`;
-
 -- drop useless updated column
 ALTER TABLE  `%TABLE_PREFIX%team_member` DROP  `updated`;
diff --git a/include/upgrader/streams/core/1ee831c8-36f6b328.patch.sql b/include/upgrader/streams/core/1ee831c8-36f6b328.patch.sql
index 32d98f2816fc5288f1a14918b37698a1667f6977..850441a57d1045b15c5f58d73831e8472bdbf3b4 100644
--- a/include/upgrader/streams/core/1ee831c8-36f6b328.patch.sql
+++ b/include/upgrader/streams/core/1ee831c8-36f6b328.patch.sql
@@ -27,12 +27,7 @@ ALTER TABLE `%TABLE_PREFIX%staff`
 
 ALTER TABLE  `%TABLE_PREFIX%groups`
     CHANGE  `group_id`  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
-    CHANGE  `group_name`  `name` VARCHAR(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT  '',
-    ADD  `role_id` INT UNSIGNED NOT NULL DEFAULT  '0' AFTER  `id` ,
-    ADD  `flags` INT UNSIGNED NOT NULL DEFAULT  '1' AFTER  `role_id`,
-    ADD INDEX (`role_id`);
-
-RENAME TABLE  `%TABLE_PREFIX%groups` TO  `%TABLE_PREFIX%group`;
+    ADD  `role_id` INT UNSIGNED NOT NULL DEFAULT  '0' AFTER  `id`;
 
 -- department changes
 ALTER TABLE  `%TABLE_PREFIX%department`
diff --git a/include/upgrader/streams/core/1ee831c8-36f6b328.task.php b/include/upgrader/streams/core/1ee831c8-36f6b328.task.php
index ddf1098207c1aacd20b0d81c40d31221118f6164..f70c4e2bfd22896d4f1219aee309a398aca6ca9c 100644
--- a/include/upgrader/streams/core/1ee831c8-36f6b328.task.php
+++ b/include/upgrader/streams/core/1ee831c8-36f6b328.task.php
@@ -1,5 +1,6 @@
 <?php
-define('GROUP_TABLE', TABLE_PREFIX.'group');
+define('GROUP_TABLE', TABLE_PREFIX.'groups');
+define('GROUP_DEPT_TABLE', TABLE_PREFIX.'group_dept_access');
 class Group extends VerySimpleModel {
     static $meta = array(
         'table' => GROUP_TABLE,
@@ -8,7 +9,10 @@ class Group extends VerySimpleModel {
     const FLAG_ENABLED = 0x0001;
 
     function getName() {
-        return $this->name;
+        return $this->group_name;
+    }
+    function getId() {
+        return $this->id;
     }
 }