diff --git a/alfa-client/libs/admin/keycloak-shared/src/lib/keycloak-formservice.spec.ts b/alfa-client/libs/admin/keycloak-shared/src/lib/keycloak-formservice.spec.ts
index 6e71337e1f2789dd36b80944ca9795d595729966..16736b029cc38ba110105e478509ff4664306e23 100644
--- a/alfa-client/libs/admin/keycloak-shared/src/lib/keycloak-formservice.spec.ts
+++ b/alfa-client/libs/admin/keycloak-shared/src/lib/keycloak-formservice.spec.ts
@@ -180,6 +180,7 @@ describe('KeycloakFormService', () => {
       service._patchConfig = patchConfig;
       service._load = jest.fn().mockReturnValue(singleHot(dummyStateResource));
       service._patchIfLoaded = jest.fn();
+      service._doAfterPatch = jest.fn();
     });
 
     it('should call load', () => {
@@ -196,6 +197,14 @@ describe('KeycloakFormService', () => {
       expect(service._patchIfLoaded).toHaveBeenCalledWith(dummyStateResource);
     });
 
+    it('should call do after patch', () => {
+      service._load = jest.fn().mockReturnValue(of(dummyStateResource));
+
+      service._initLoading().subscribe();
+
+      expect(service._doAfterPatch).toHaveBeenCalledWith(dummyStateResource);
+    });
+
     it('should return loaded value', () => {
       const loadedDummyStateResource: Observable<StateResource<Dummy>> = service._initLoading();
 
@@ -777,6 +786,8 @@ export class TestKeycloakFormService extends KeycloakFormService<Dummy> {
     return TestKeycloakFormService.LOAD_OBSERVABLE();
   }
 
+  _doAfterPatch(stateResource: StateResource<Dummy>) {}
+
   _doSubmit(): Observable<StateResource<Dummy>> {
     return TestKeycloakFormService.SUBMIT_OBSERVABLE();
   }
diff --git a/alfa-client/libs/admin/keycloak-shared/src/lib/keycloak-formservice.ts b/alfa-client/libs/admin/keycloak-shared/src/lib/keycloak-formservice.ts
index e7de668f01b046cf32d702026be570290ad440ca..c8287dbaba567bfefb376671bba26a35e2dd8ad7 100644
--- a/alfa-client/libs/admin/keycloak-shared/src/lib/keycloak-formservice.ts
+++ b/alfa-client/libs/admin/keycloak-shared/src/lib/keycloak-formservice.ts
@@ -69,11 +69,16 @@ export abstract class KeycloakFormService<T> {
   }
 
   _initLoading(): Observable<StateResource<T>> {
-    return this._load(this._patchConfig.id).pipe(tap((stateResource: StateResource<T>) => this._patchIfLoaded(stateResource)));
+    return this._load(this._patchConfig.id).pipe(
+      tap((stateResource: StateResource<T>) => this._patchIfLoaded(stateResource)),
+      tap((stateResource: StateResource<T>) => this._doAfterPatch(stateResource)),
+    );
   }
 
   abstract _load(id: string): Observable<StateResource<T>>;
 
+  abstract _doAfterPatch(stateResource: StateResource<T>): void;
+
   _patchIfLoaded(stateResource: StateResource<T>): void {
     if (isLoaded(stateResource)) this._patch(stateResource.resource);
   }
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.spec.ts b/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.spec.ts
index 71ea6569bdcc5da1257ec1078b124e8259c0b61f..452e72c34a42911c7868c5f2ee15609d750b295f 100644
--- a/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.spec.ts
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.spec.ts
@@ -168,6 +168,16 @@ describe('UserFormService', () => {
     });
   });
 
+  describe('doAfterPatch', () => {
+    it('should call _updateAlfaRoleStates', () => {
+      service._updateAlfaRoleStates = jest.fn();
+
+      service._doAfterPatch(createStateResource(createUser()));
+
+      expect(service._updateAlfaRoleStates).toHaveBeenCalled();
+    });
+  });
+
   describe('initOrganisationsEinheiten', () => {
     beforeEach(() => {
       service._addOrganisationsEinheitenToForm = jest.fn();
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.ts b/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.ts
index 2e717f691285c8079a9fcc0434a824a17cd5399c..616a0e9553f766fb7f02808ec700db71f202cfe3 100644
--- a/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.ts
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.ts
@@ -95,10 +95,11 @@ export class UserFormService extends KeycloakFormService<User> {
   }
 
   _load(id: string): Observable<StateResource<User>> {
-    return this.userService.getUserById(id).pipe(
-      filter(isLoaded),
-      tap(() => this._updateAlfaRoleStates()),
-    );
+    return this.userService.getUserById(id);
+  }
+
+  _doAfterPatch(stateResource: StateResource<User>): void {
+    this._updateAlfaRoleStates();
   }
 
   _initForm(): UntypedFormGroup {