diff --git a/aleksis/core/views.py b/aleksis/core/views.py
index 4a14d999050a04da68f1e85d57f8f18e410ece3e..870ece0870a0d134a1a6c2b860cfc10cc92eadd7 100644
--- a/aleksis/core/views.py
+++ b/aleksis/core/views.py
@@ -1110,6 +1110,7 @@ class EnterInvitationCode(FormView):
             accept_invitation(
                 invitation=invitation, request=self.request, signal_sender=self.request.user
             )
+            self.request.session["invitation_code_entered"] = True
             return redirect("account_signup")
         return redirect("invitations:accept-invite", code)
 
@@ -1417,9 +1418,7 @@ class AccountRegisterView(SignupView):
     success_url = reverse_lazy("index")
 
     def dispatch(self, request, *args, **kwargs):
-        if not request.user.has_perm("core.can_register") and not request.session.get(
-            "account_verified_email"
-        ):
+        if not request.user.has_perm("core.can_register") and not request.session.get("account_verified_email") and not request.session.get("invitation_code_entered"):
             raise PermissionDenied()
         return super(AccountRegisterView, self).dispatch(request, *args, **kwargs)