diff --git a/submissions/forms.py b/submissions/forms.py
index 37f07e08e92e0e2fcd99b559e8313a86055bf6aa..1fd5527db82fa9c742d3dc13888280e6852e2e85 100644
--- a/submissions/forms.py
+++ b/submissions/forms.py
@@ -71,6 +71,7 @@ class SubmissionChecks:
     last_submission = None
 
     def __init__(self, *args, **kwargs):
+        self.requested_by = kwargs.pop('requested_by', None)
         super().__init__(*args, **kwargs)
         # Prefill `is_resubmission` property if data is coming from initial data
         if kwargs.get('initial', None):
@@ -121,6 +122,11 @@ class SubmissionChecks:
             self.last_submission = submission
             if submission.status == STATUS_REVISION_REQUESTED:
                 self.is_resubmission = True
+                if self.requested_by.contributor not in submission.authors.all():
+                    error_message = ('There exists a preprint with this arXiv identifier '
+                                     'but an earlier version number. Resubmission is only possible'
+                                     ' if you are a registered author of this manuscript.')
+                    raise forms.ValidationError(error_message)
             elif submission.status in [STATUS_REJECTED, STATUS_REJECTED_VISIBLE]:
                 error_message = ('This arXiv preprint has previously undergone refereeing '
                                  'and has been rejected. Resubmission is only possible '
@@ -238,7 +244,6 @@ class RequestSubmissionForm(SubmissionChecks, forms.ModelForm):
         }
 
     def __init__(self, *args, **kwargs):
-        self.requested_by = kwargs.pop('requested_by', None)
         super().__init__(*args, **kwargs)
 
         if not self.submission_is_resubmission():
diff --git a/submissions/signals.py b/submissions/signals.py
index 53461d84cea416478376bd2404f1700834d0aaaf..664ff585d5255a68d32b3ef6c949d79ab58edda3 100644
--- a/submissions/signals.py
+++ b/submissions/signals.py
@@ -32,8 +32,13 @@ def notify_new_editorial_assignment(sender, instance, created, **kwargs):
     """
     if created:
         administration = Group.objects.get(name='Editorial Administrators')
+        if instance.accepted:
+            # A new assignment is auto-accepted if user assigned himself or on resubmission.
+            text = ' assigned you Editor-in-charge.'
+        else:
+            text = ' invited you to become Editor-in-charge.'
         notify.send(sender=sender, recipient=instance.to.user, actor=administration,
-                    verb=' invited you to become Editor-in-charge.', target=instance)
+                    verb=text, target=instance)
 
 
 def notify_new_referee_invitation(sender, instance, created, **kwargs):
diff --git a/submissions/views.py b/submissions/views.py
index 9d9fafc7284e9a05ba05d05eb480d7cd3c1f7e83..b91cff2ff4e21398802ede349c488fa633b13e0f 100644
--- a/submissions/views.py
+++ b/submissions/views.py
@@ -96,10 +96,11 @@ class RequestSubmission(CreateView):
 @login_required
 @permission_required('scipost.can_submit_manuscript', raise_exception=True)
 def prefill_using_arxiv_identifier(request):
-    query_form = SubmissionIdentifierForm(request.POST or None, initial=request.GET or None)
+    query_form = SubmissionIdentifierForm(request.POST or None, initial=request.GET or None,
+                                          requested_by=request.user)
     if query_form.is_valid():
         prefill_data = query_form.request_arxiv_preprint_form_prefill_data()
-        form = RequestSubmissionForm(initial=prefill_data)
+        form = RequestSubmissionForm(initial=prefill_data, requested_by=request.user)
 
         # Submit message to user
         if query_form.submission_is_resubmission():