diff --git a/apps/member/models.py b/apps/member/models.py
index 0b471f12f382791f26e4212bdcc33e6fe8d804b4..3706e47f7e366e71bbda7d091d4b06e1a44744f6 100644
--- a/apps/member/models.py
+++ b/apps/member/models.py
@@ -263,7 +263,7 @@ class Club(models.Model):
 
         today = datetime.date.today()
 
-        if (today - self.membership_start).days >= 365:
+        while (today - self.membership_start).days >= 365:
             if self.membership_start:
                 self.membership_start = datetime.date(self.membership_start.year + 1,
                                                       self.membership_start.month, self.membership_start.day)
diff --git a/apps/member/tests/test_memberships.py b/apps/member/tests/test_memberships.py
index 2dc6dd41a46c26ea712270c4dc45ac8d50a612e3..b26475514f1438e344d14662bedb6d5b911419c7 100644
--- a/apps/member/tests/test_memberships.py
+++ b/apps/member/tests/test_memberships.py
@@ -183,7 +183,7 @@ class TestMemberships(TestCase):
                 club = Club.objects.get(name="Kfet")
             else:
                 club = Club.objects.create(
-                    name="Second club " + ("with BDE" if bde_parent else "without BDE"),
+                    name="Second club without BDE",
                     parent_club=None,
                     email="newclub@example.com",
                     require_memberships=True,
diff --git a/apps/member/views.py b/apps/member/views.py
index 2f6348a6f842b5e0ed65f7fffc1b4102d7822c45..63307383d1d2340628ee9af30936fa0bed723dda 100644
--- a/apps/member/views.py
+++ b/apps/member/views.py
@@ -753,6 +753,10 @@ class ClubAddMemberView(ProtectQuerysetMixin, ProtectedCreateView):
             club = old_membership.club
             user = old_membership.user
 
+        # Update club membership date
+        if PermissionBackend.check_perm(self.request, "member.change_club_membership_start", club):
+            club.update_membership_dates()
+
         form.instance.club = club
 
         # Get form data