diff --git a/apps/member/models.py b/apps/member/models.py
index 0384bf79f2821c36a341760032f610d27422fdf4..e1960a5a0bd49dfc6779e31c7b045305aa3f2bde 100644
--- a/apps/member/models.py
+++ b/apps/member/models.py
@@ -302,12 +302,13 @@ class Membership(models.Model):
             if not Membership.objects.filter(user=self.user, club=self.club.parent_club).exists():
                 raise ValidationError(_('User is not a member of the parent club') + ' ' + self.club.parent_club.name)
 
-        for role in self.roles.all():
-            club = role.for_club
-            if club is not None:
-                if club.pk != self.club_id:
-                    raise ValidationError(_('The role {role} does not apply to the club {club}.')
-                                          .format(role=role.name, club=club.name))
+        if self.pk:
+            for role in self.roles.all():
+                club = role.for_club
+                if club is not None:
+                    if club.pk != self.club_id:
+                        raise ValidationError(_('The role {role} does not apply to the club {club}.')
+                                              .format(role=role.name, club=club.name))
 
         created = not self.pk
         if created: