diff --git a/scipost_django/submissions/forms/__init__.py b/scipost_django/submissions/forms/__init__.py
index 782f0726fc9aa197716710799e72fcb239e315f1..0ecca5627fa7a451a98d13c94edf90c4cc9548a7 100644
--- a/scipost_django/submissions/forms/__init__.py
+++ b/scipost_django/submissions/forms/__init__.py
@@ -2483,7 +2483,7 @@ class ConsiderRefereeInvitationForm(forms.Form):
         label="Are you willing to referee this Submission?",
     )
     refusal_reason = forms.ChoiceField(
-        choices=EditorialAssignment.REFUSAL_REASONS, required=False
+        choices=[(None, "")] + list(EditorialAssignment.REFUSAL_REASONS), required=False
     )
     other_refusal_reason = forms.CharField(
         required=False,
@@ -2497,24 +2497,24 @@ class ConsiderRefereeInvitationForm(forms.Form):
 
     def clean(self):
         accepted = self.cleaned_data.get("accept", None)
-        reason = self.cleaned_data.get("refusal_reason", None)
-        other_refusal_reason = self.cleaned_data.get("other_refusal_reason", None)
+        reason = self.cleaned_data.get("refusal_reason", "")
+        other_refusal_reason = self.cleaned_data.get("other_refusal_reason", "")
 
         if accepted == "False":
-            if reason is None:
+            if reason == "":
                 self.add_error(
                     "refusal_reason", "Please select a reason for declining."
                 )
-            if reason == "other" and other_refusal_reason is None:
+            if reason == "OTH" and other_refusal_reason == "":
                 self.add_error(
                     "other_refusal_reason", "Please specify your reason for declining."
                 )
-            elif reason != "other" and other_refusal_reason is not None:
+            elif reason != "OTH" and other_refusal_reason != "":
                 self.add_error(
                     "other_refusal_reason",
                     'Please select "Other" to specify your reason for declining.',
                 )
-        elif reason is not None:
+        elif accepted == "True" and reason != "":
             self.add_error(
                 "refusal_reason",
                 "You cannot select a refusal reason if you accept.",
diff --git a/scipost_django/submissions/views/__init__.py b/scipost_django/submissions/views/__init__.py
index 7097da88a39fd5d271db9188b90a4a1756f55d60..879604db3b14d37385fa28b91178e06387de08ca 100644
--- a/scipost_django/submissions/views/__init__.py
+++ b/scipost_django/submissions/views/__init__.py
@@ -1567,6 +1567,7 @@ def decline_ref_invitation(request, invitation_key):
         invitation.accepted = False
         invitation.date_responded = timezone.now()
         invitation.refusal_reason = form.cleaned_data["refusal_reason"]
+        invitation.other_refusal_reason = form.cleaned_data["other_refusal_reason"]
         invitation.save()
 
         mail_util = DirectMailUtil(