diff --git a/preprints/helpers.py b/preprints/helpers.py
index 78752a6f7f614a07d392c25d004627876e4344eb..716c6b5b5ad33982da4b753535c83d9934ba994b 100644
--- a/preprints/helpers.py
+++ b/preprints/helpers.py
@@ -36,7 +36,7 @@ def get_new_scipost_identifier(thread_hash=None):
     # At least one previous submission on SciPost's preprint server
     if len(scipost_submissions_in_thread) > 0:
         identifier = '{}v{}'.format(
-            scipost_submissions_in_thread.first().identifier_wo_vn_nr,
+            scipost_submissions_in_thread.first().preprint.identifier_wo_vn_nr,
             str(len(scipost_submissions_in_thread) + 1))
         return identifier
 
diff --git a/submissions/forms.py b/submissions/forms.py
index 5ec6f0865575ea75f8d2f2dee8e365bfc7022374..ef23812c9c6c7a8f4d9801205be1fd1d2ffe6936 100644
--- a/submissions/forms.py
+++ b/submissions/forms.py
@@ -308,28 +308,6 @@ class SubmissionService:
                                         params={'published_id': published_id})
 
 
-# class SubmissionPrefillForm(forms.Form): # Does not work: cannot display differently
-#     """
-#     Provide initial data for SubmissionForm.
-#     """
-#     journal = forms.ModelChoiceField(
-#         queryset=Journal.objects.submission_allowed(),
-#         widget=forms.HiddenInput()
-#     )
-#     thread_hash = forms.UUIDField(
-#         required=False,
-#         widget=forms.HiddenInput()
-#     )
-#     preprint_server = forms.ModelChoiceField(
-#         queryset=PreprintServer.objects.all(),
-#         widget=forms.HiddenInput()
-#     )
-#     identifier_w_vn_nr = forms.CharField(
-#         required=False
-#     )
-
-
-
 
 ######################################################################
 #
@@ -399,7 +377,7 @@ def check_arxiv_identifier_w_vn_nr(identifier):
                          'It cannot be submitted again.'),
         raise forms.ValidationError(error_message, code='published',
                                     params={'published_id': published_id})
-    return metadata, identifier
+    return arxiv_data, metadata, identifier
 
 
 class SubmissionPrefillForm(forms.Form):
@@ -434,7 +412,14 @@ class SubmissionPrefillForm(forms.Form):
         check_resubmission_readiness(self.requested_by, self.latest_submission)
 
     def get_prefill_data(self):
-        return {}
+        form_data = {
+            'discipline': self.journal.discipline,
+            'submitted_to': self.journal.id
+        }
+        if self.thread_hash:
+            form_data['thread_hash'] = self.thread_hash
+            form_data['is_resubmission_of'] = self.latest_submission.id
+        return form_data
 
 
 class SciPostPrefillForm(SubmissionPrefillForm):
@@ -460,23 +445,20 @@ class SciPostPrefillForm(SubmissionPrefillForm):
         """
         Return initial form data originating from earlier Submission.
         """
+        form_data = super().get_prefill_data()
         if self.is_resubmission():
-            return {
+            form_data.update({
                 'title': self.latest_submission.title,
                 'abstract': self.latest_submission.abstract,
                 'author_list': self.latest_submission.author_list,
-                'discipline': self.latest_submission.discipline,
                 'approaches': self.latest_submission.approaches,
                 'referees_flagged': self.latest_submission.referees_flagged,
                 'referees_suggested': self.latest_submission.referees_suggested,
                 'secondary_areas': self.latest_submission.secondary_areas,
                 'subject_area': self.latest_submission.subject_area,
-                'submitted_to': self.journal.id,
                 'submission_type': self.latest_submission.submission_type,
-                'thread_hash': self.latest_submission.thread_hash,
-                'is_resubmission_of': self.latest_submission.id
-            }
-        return {}
+            })
+        return form_data
 
 
 class ArXivPrefillForm(SubmissionPrefillForm):
@@ -494,8 +476,8 @@ class ArXivPrefillForm(SubmissionPrefillForm):
 
     def __init__(self, *args, **kwargs):
         self.preprint_server = 'arXiv'
-        self.arxiv_data = None
-        self.metadata = None
+        self.arxiv_data = {}
+        self.metadata = {}
         super().__init__(*args, **kwargs)
 
     def clean_arxiv_identifier_w_vn_nr(self):
@@ -506,7 +488,7 @@ class ArXivPrefillForm(SubmissionPrefillForm):
 
         check_identifier_is_unused(identifier)
 
-        self.metadata, identifier = check_arxiv_identifier_w_vn_nr(identifier)
+        self.arxiv_data, self.metadata, identifier = check_arxiv_identifier_w_vn_nr(identifier)
 
         # caller = ArxivCaller(identifier)
         # if caller.is_valid:
@@ -539,10 +521,9 @@ class ArXivPrefillForm(SubmissionPrefillForm):
         """
         Return dictionary to prefill `SubmissionForm`.
         """
-        form_data = self.arxiv_data
+        form_data = super().get_prefill_data()
+        form_data.update(self.arxiv_data)
         form_data['identifier_w_vn_nr'] = self.cleaned_data['arxiv_identifier_w_vn_nr']
-        form_data['discipline'] = self.journal.discipline
-        form_data['submitted_to'] = self.journal.id
         if self.is_resubmission():
             form_data.update({
                 'approaches': self.latest_submission.approaches,
@@ -551,7 +532,6 @@ class ArXivPrefillForm(SubmissionPrefillForm):
                 'secondary_areas': self.latest_submission.secondary_areas,
                 'subject_area': self.latest_submission.subject_area,
                 'submission_type': self.latest_submission.submission_type,
-                'thread_hash': self.latest_submission.thread_hash
             })
         return form_data
 
@@ -566,10 +546,10 @@ class SubmissionForm(forms.ModelForm):
     """
     Form to submit a new (re)Submission.
     """
-    thread_hash = forms.UUIDField(
-        required=False,
-        widget=forms.HiddenInput()
-    )
+    # thread_hash = forms.UUIDField(
+    #     required=False,
+    #     widget=forms.HiddenInput()
+    # )
     identifier_w_vn_nr = forms.CharField(widget=forms.HiddenInput())
     preprint_file = forms.FileField(
         help_text=('Please submit the processed .pdf (not the source files; '
@@ -579,6 +559,7 @@ class SubmissionForm(forms.ModelForm):
         model = Submission
         fields = [
             'is_resubmission_of',
+            'thread_hash',
             'discipline',
             'submitted_to',
             'proceedings',
@@ -598,6 +579,7 @@ class SubmissionForm(forms.ModelForm):
         ]
         widgets = {
             'is_resubmission_of': forms.HiddenInput(),
+            'thread_hash': forms.HiddenInput(),
             'secondary_areas': forms.SelectMultiple(choices=SCIPOST_SUBJECT_AREAS),
             'arxiv_link': forms.TextInput(
                 attrs={'placeholder': 'ex.:  arxiv.org/abs/1234.56789v1'}),
@@ -619,13 +601,15 @@ class SubmissionForm(forms.ModelForm):
     def __init__(self, *args, **kwargs):
         self.requested_by = kwargs.pop('requested_by')
         self.preprint_server = kwargs.pop('preprint_server')
-        self.thread_hash = kwargs['initial'].get('thread_hash', None)
-
+        data = data = args[0] if len(args) > 1 else kwargs.get('data', {})
+        self.thread_hash = kwargs['initial'].get('thread_hash', None) or data.get('thread_hash')
+        self.is_resubmission_of = kwargs['initial'].get(
+            'is_resubmission_of', None) or data.get('is_resubmission_of')
         self.metadata = {} # container for possible external server-provided metadata
 
-        # print("form args:\n", args)
-        # print("form kwargs:\n", kwargs)
-        # print("is_resubmission: %s" % self.is_resubmission())
+        print("form args:\n", args)
+        print("form kwargs:\n", kwargs)
+        print("is_resubmission: %s" % self.is_resubmission())
 
         # data = args[0] if len(args) > 1 else kwargs.get('data', {})
         # identifier = kwargs['initial'].get('identifier_w_vn_nr', None) or data.get('identifier_w_vn_nr')
@@ -688,7 +672,15 @@ class SubmissionForm(forms.ModelForm):
 
     def is_resubmission(self):
         # return self.service.is_resubmission()
-        return self.thread_hash is not None
+        # return self.thread_hash is not None
+        return self.is_resubmission_of is not None
+        # if self.thread_hash is not None:
+        #     return True
+        # if hasattr(self, 'data'):
+        #     if 'is_resubmission_of' in self.data:
+        #         if self.data['is_resubmission_of']:
+        #             return True
+        # return False
 
     def clean(self, *args, **kwargs):
         """
@@ -744,7 +736,7 @@ class SubmissionForm(forms.ModelForm):
         check_identifier_is_unused(identifier)
 
         if self.preprint_server == 'arXiv':
-            self.metadata, identifier = check_arxiv_identifier_w_vn_nr(identifier)
+            self.arxiv_data, self.metadata, identifier = check_arxiv_identifier_w_vn_nr(identifier)
         return identifier
 
     def clean_submission_type(self):
@@ -811,6 +803,7 @@ class SubmissionForm(forms.ModelForm):
 
         # Open for comment and reporting and copy EIC info
         Submission.objects.filter(id=submission.id).update(
+            _is_resubmission=True,
             open_for_reporting=True,
             open_for_commenting=True,
             visible_pool=True,
diff --git a/submissions/templates/partials/submissions/submission_refereeing_history.html b/submissions/templates/partials/submissions/submission_refereeing_history.html
index 1f3d4f01d7a0c0eefdfa874ccb48945ddc685871..657fb86c7097e0d78d5b62546e5c6dd2d647f436 100644
--- a/submissions/templates/partials/submissions/submission_refereeing_history.html
+++ b/submissions/templates/partials/submissions/submission_refereeing_history.html
@@ -8,7 +8,7 @@
   {% endif %}
   {% for sibling in submission.thread.public %}
     <div class="mt-3 mb-1">
-      {% if forloop.last %}Submission{% else %}Resubmission{% endif %} <a href="{{ sibling.get_absolute_url }}" class="pubtitleli"{% if target_blank %} target="_blank"{% endif %}>{{ sibling.preprint.identifier_w_vn_nr }}</a> on {{ sibling.submission_date|date:'j F Y' }}
+      {% if sibling.is_resubmission_of %}Resubmission{% else %}Submission{% endif %} <a href="{{ sibling.get_absolute_url }}" class="pubtitleli"{% if target_blank %} target="_blank"{% endif %}>{{ sibling.preprint.identifier_w_vn_nr }}</a> on {{ sibling.submission_date|date:'j F Y' }}
     </div>
     <ul class="my-2 pl-4">
       {% for report in sibling.reports.accepted %}