diff --git a/aleksis/core/models.py b/aleksis/core/models.py
index 40b0b53339b90311fa8f7aaaa459e91b7db0cdb4..95962b8ed0b9dca78bb1b7647a5a98090cd96032 100644
--- a/aleksis/core/models.py
+++ b/aleksis/core/models.py
@@ -158,6 +158,16 @@ class Person(ExtensibleModel):
         else:
             return f"{self.first_name} {self.last_name}"
 
+    def save(self, *args, **kwargs):
+        super().save(*args, **kwargs)
+
+        # Synchronise user fields to linked User object to keep it up to date
+        if self.user:
+            self.user.first_name = self.first_name
+            self.user.last_name = self.last_name
+            self.user.email = self.email
+            self.user.save()
+
     def __str__(self) -> str:
         return self.full_name