diff --git a/include/upgrader/streams/core/0d6099a6-98ad7d55.task.php b/include/upgrader/streams/core/0d6099a6-98ad7d55.task.php
index 75ff0416fe19d55384229eb66ffb4a261d7f2418..abcc0498cc9f2b911eef970b8d69813d76e99763 100644
--- a/include/upgrader/streams/core/0d6099a6-98ad7d55.task.php
+++ b/include/upgrader/streams/core/0d6099a6-98ad7d55.task.php
@@ -5,7 +5,11 @@ class StaffPermissions extends MigrationTask {
 
     function run($time) {
         foreach (Staff::objects() as $staff) {
-            $role = $staff->getRole()->getPermission();
+            $role = $staff->getRole();
+            if ($role)
+                $role_perms = $role->getPermission();
+            else
+                $role_perms = new RolePermission(null);
             $perms = array(
                 User::PERM_CREATE,
                 User::PERM_EDIT,
@@ -16,9 +20,9 @@ class StaffPermissions extends MigrationTask {
                 Organization::PERM_EDIT,
                 Organization::PERM_DELETE,
             );
-            if ($role->has(FAQ::PERM_MANAGE))
+            if ($role_perms->has(FAQ::PERM_MANAGE))
                 $perms[] = FAQ::PERM_MANAGE;
-            if ($role->has(Email::PERM_BANLIST))
+            if ($role_perms->has(Email::PERM_BANLIST))
                 $perms[] = Email::PERM_BANLIST;
 
             $errors = array();