diff --git a/scipost_django/submissions/forms/__init__.py b/scipost_django/submissions/forms/__init__.py
index a1c42de8ce0c03d6190860e775371d62f7de45bd..1eac64e0f26688fc5d9c6a875e0be8e77915698e 100644
--- a/scipost_django/submissions/forms/__init__.py
+++ b/scipost_django/submissions/forms/__init__.py
@@ -2431,6 +2431,7 @@ class InviteRefereeSearchFrom(forms.Form):
                     RefereeInvitation.objects.filter(
                         profile=OuterRef("id"),
                         submission=self.submission,
+                        cancelled=False,
                     )
                 )
             )
diff --git a/scipost_django/submissions/views/__init__.py b/scipost_django/submissions/views/__init__.py
index 756e1055dc50ea6a5af9432c9e76ea3c15b62b31..509206b253cf72d78743a56b777cf65cf442cf93 100644
--- a/scipost_django/submissions/views/__init__.py
+++ b/scipost_django/submissions/views/__init__.py
@@ -618,7 +618,9 @@ def submission_detail(request, identifier_w_vn_nr):
     # Check if Contributor is author of the Submission
     is_author = check_verified_author(submission, request.user)
     is_author_unchecked = check_unverified_author(submission, request.user)
-    is_submission_fellow = submission.fellows.filter(contributor__user=request.user.id).exists()
+    is_submission_fellow = submission.fellows.filter(
+        contributor__user=request.user.id
+    ).exists()
 
     if not submission.visible_public and not is_author:
         if not request.user.is_authenticated:
@@ -1372,9 +1374,13 @@ def invite_referee(
         )
 
     # Guard against already invited referees
-    if RefereeInvitation.objects.filter(
-        profile=profile, submission=submission
-    ).exists():
+    if (
+        RefereeInvitation.objects.filter(
+            profile=profile, submission=submission, cancelled=False
+        )
+        .exclude(email_address=profile_email)
+        .exists()
+    ):
         messages.error(
             request,
             "This referee has already been invited.",
@@ -1430,6 +1436,9 @@ def invite_referee(
         key = get_new_secrets_key()
         referee_invitation.invitation_key = key
         referee_invitation.save()
+    elif referee_invitation.cancelled:
+        referee_invitation.cancelled = False
+        referee_invitation.save()
 
     registration_invitation = None
     has_agreed_to_previous_invitation = RefereeInvitation.objects.filter(
@@ -1518,7 +1527,7 @@ def _hx_quick_invite_referee(request, identifier_w_vn_nr, profile_id):
 
     # Guard against already invited referees
     if RefereeInvitation.objects.filter(
-        profile=profile, submission=submission
+        profile=profile, submission=submission, cancelled=False
     ).exists():
         return HTMXResponse(
             "This referee has already been invited.",
@@ -1558,6 +1567,9 @@ def _hx_quick_invite_referee(request, identifier_w_vn_nr, profile_id):
         key = get_new_secrets_key()
         referee_invitation.invitation_key = key
         referee_invitation.save()
+    elif referee_invitation.cancelled:
+        referee_invitation.cancelled = False
+        referee_invitation.save()
 
     registration_invitation = None
     has_agreed_to_previous_invitation = RefereeInvitation.objects.filter(