diff --git a/survey-frontend/src/UserManagementComponent.tsx b/survey-frontend/src/UserManagementComponent.tsx
index 9bbe090b13d007cbb94204bfd56333e3e18575e8..d3ea652c2e370225f4f246c667b9cb6e39166845 100644
--- a/survey-frontend/src/UserManagementComponent.tsx
+++ b/survey-frontend/src/UserManagementComponent.tsx
@@ -55,9 +55,9 @@ const defaultSortFunction = (a, b) => {
     } else if (!a.permissions.active && b.permissions.active) {
         return 1;
     } else if (a.permissions.active && b.permissions.active) {
-        if (a.role === 'admin' && b.role === 'user') {
+        if (a.role === 'admin' && b.role !== 'admin') {
             return 1;
-        } else if (a.role === 'user' && b.role === 'admin') {
+        } else if (a.role !== 'admin' && b.role === 'admin') {
             return -1;
         } else {
             return a.name.localeCompare(b.name)
@@ -73,10 +73,12 @@ function UserManagementComponent() {
     const [nrens, setNrens] = useState<Nren[]>([]);
     const { user: loggedInUser } = useContext(userContext);
     const [sortFunc, setSortFunc] = useState({ idx: -1, func: defaultSortFunction, asc: true });
+    const [sortedUsers, setSortedUsers] = useState<User[]>([]);
 
     useEffect(() => {
         fetchUsers().then((userList) => {
             setUsers(userList);
+            setSortedUsers(userList.sort(sortFunc.func))
         });
 
         fetchNrens().then((nrenList) => {
@@ -112,8 +114,6 @@ function UserManagementComponent() {
         })?.id
     }
 
-    const sortedUsers = users.sort(sortFunc.func);
-
     const setSort = (index) => {
         if (index === sortFunc.idx || ((index === 5 || index === 0) && sortFunc.idx === -1)) {
             // reverse sort
@@ -182,6 +182,8 @@ function UserManagementComponent() {
         } else {
             setSortFunc({ idx: index, asc: true, func: defaultSortFunction })
         }
+
+        setSortedUsers(users.sort(sortFunc.func))
     }
 
     // build the aria-sort attribute for each column with spreadable objects..
@@ -229,6 +231,7 @@ function UserManagementComponent() {
                                             onChange={(event) => handleInputChange(event, user)}>
                                         <option value="admin">Admin</option>
                                         <option value="user">User</option>
+                                        <option value="observer">Observer</option>
                                     </select>}
                                 </td>