diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 3b4a70be33ebf01ed8c37cdff7e93ceb0471aef2..52a966d9913b8eccc361c195cccdae9fc09bd962 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -14,6 +14,7 @@ Fixed
 
 * PDF generation failed with S3 storage due to incompatibility with boto3
 * Form for editing group type displayed irrelevant fields
+* Permission groups could get outdated if re-assigning a user account to a different person
 
 `2.7`_ - 2022-01-24
 -------------------
diff --git a/aleksis/core/models.py b/aleksis/core/models.py
index f46a803b687cc9cde9a893c642586eac232fd84d..d969851a279174635d331f2a567c09715e35f00b 100644
--- a/aleksis/core/models.py
+++ b/aleksis/core/models.py
@@ -316,7 +316,7 @@ class Person(ExtensibleModel):
     def initials(self):
         return f"{self.first_name[0]}{self.last_name[0]}".upper()
 
-    user_info_tracker = FieldTracker(fields=("first_name", "last_name", "email"))
+    user_info_tracker = FieldTracker(fields=("first_name", "last_name", "email", "user"))
 
     @property
     def member_of_recursive(self) -> QuerySet:
@@ -347,6 +347,10 @@ class Person(ExtensibleModel):
             self.user.email = self.email
             self.user.save()
 
+            # Synchronise groups to Django
+            for group in self.member_of.all():
+                group.save()
+
         # Select a primary group if none is set
         self.auto_select_primary_group()