diff --git a/scipost/templates/partials/scipost/personal_page/submissions.html b/scipost/templates/partials/scipost/personal_page/submissions.html
index dd7b6fcd810c22c0b9bf4f33485c37731e750890..2701c389e787d8ba3c8e40dd7d94afcefe0efbf8 100644
--- a/scipost/templates/partials/scipost/personal_page/submissions.html
+++ b/scipost/templates/partials/scipost/personal_page/submissions.html
@@ -37,7 +37,12 @@
                     {% if sub.editor_in_charge %}
                       <li><a href="{% url 'submissions:communication' sub.preprint.identifier_w_vn_nr 'AtoE' %}">Write to the Editor-in-charge</a></li>
                     {% endif %}
-		    <li><a href="{% url 'submissions:withdraw_manuscript' sub.preprint.identifier_w_vn_nr %}"><span class="text-danger">Withdraw</span></a> (leads to confirmation page)</li>
+		    {% if sub.editorial_decision %}
+		      {% if sub.editorial_decision.status == sub.editorial_decision.AWAITING_PUBOFFER_ACCEPTANCE %}
+			<li><a class="btn btn-primary my-1 px-1 py-0" href="{% url 'submissions:accept_puboffer' sub.preprint.identifier_w_vn_nr %}">Accept offer for publication in {{ sub.editorial_decision.for_journal }} (one-click action)</a></li>
+		      {% endif %}
+		    {% endif %}
+		    <li><ahref="{% url 'submissions:withdraw_manuscript' sub.preprint.identifier_w_vn_nr %}"><span class="text-danger">Withdraw</span> (leads to confirmation page)</a></li>
 		  {% endif %}
 		</ul>
               </p>
diff --git a/submissions/constants.py b/submissions/constants.py
index a90989f5002a5151d402db72eb230901fcc3b3c9..ec50bdda6fd2e850e9c2cae94fda4c7d24884bef 100644
--- a/submissions/constants.py
+++ b/submissions/constants.py
@@ -38,7 +38,8 @@ SUBMISSION_STATUS = (
 
 # Submissions which are currently under consideration
 SUBMISSION_UNDER_CONSIDERATION = [
-    STATUS_INCOMING, STATUS_UNASSIGNED, STATUS_EIC_ASSIGNED, STATUS_RESUBMITTED
+    STATUS_INCOMING, STATUS_UNASSIGNED, STATUS_EIC_ASSIGNED, STATUS_RESUBMITTED,
+    STATUS_ACCEPTED_AWAITING_PUBOFFER_ACCEPTANCE
 ]
 
 # Submissions with these statuses never have required actions.
diff --git a/submissions/forms.py b/submissions/forms.py
index 2068934931b5926343e2fb6f7116012fd922e274..b9e48d721f31475a51bfd0ad63a87a9c7e2be31b 100644
--- a/submissions/forms.py
+++ b/submissions/forms.py
@@ -1249,10 +1249,6 @@ class EICRecommendationForm(forms.ModelForm):
                 kwargs['initial'] = {
                     'for_journal': latest_recommendation.for_journal,
                     'recommendation': latest_recommendation.recommendation,
-                    'remarks_for_authors': latest_recommendation.remarks_for_authors,
-                    'requested_changes': latest_recommendation.requested_changes,
-                    'remarks_for_editorial_college':
-                        latest_recommendation.remarks_for_editorial_college,
                 }
 
         super().__init__(*args, **kwargs)
diff --git a/submissions/templates/partials/submissions/submission_author_information.html b/submissions/templates/partials/submissions/submission_author_information.html
index cf010878f4fea8807c053f46031a0644d283834b..c0591c286418b7cfa8b09703606419051d48bd2b 100644
--- a/submissions/templates/partials/submissions/submission_author_information.html
+++ b/submissions/templates/partials/submissions/submission_author_information.html
@@ -71,14 +71,10 @@
     </table>
   </div>
 
-  {% if submission.eicrecommendations.active %}
+  {% if submission.eicrecommendations %}
     <div class="mb-4">
       <h4 class="mb-2">Editorial Recommendation:</h4>
-      {% for recommendation in submission.eicrecommendations.active %}
-        {% include 'partials/submissions/recommendation_author_content.html' with recommendation=recommendation %}
-      {% empty %}
-        No Editorial Recommendation has yet been formulated.
-      {% endfor %}
+      {% include 'partials/submissions/recommendation_author_content.html' with recommendation=submission.eicrecommendations.last %}
     </div>
   {% endif %}
 
diff --git a/submissions/templates/submissions/pool/editorial_page.html b/submissions/templates/submissions/pool/editorial_page.html
index eaf4df2cb582b3ebabb5c64a1403671db710d102..26c31c74d65eb784140dd231b09a2e5da8eb8d1c 100644
--- a/submissions/templates/submissions/pool/editorial_page.html
+++ b/submissions/templates/submissions/pool/editorial_page.html
@@ -53,10 +53,10 @@
       {% endif %}
 
       <br>
-      <h3 id="editorial-recommendation">Editorial Recommendation</h3>
-      {% for recommendation in submission.eicrecommendations.all %}
-        {% include 'partials/submissions/recommendation_fellow_content.html' with recommendation=recommendation %}
-      {% endfor %}
+      {% if submission.eicrecommendations %}
+	<h3 id="editorial-recommendation">Editorial Recommendation</h3>
+        {% include 'partials/submissions/recommendation_fellow_content.html' with recommendation=submission.eicrecommendations.last %}
+      {% endif %}
 
       {% if submission.eic_recommendation_required %}
         <div class="mb-4">
diff --git a/submissions/templates/submissions/submission_detail.html b/submissions/templates/submissions/submission_detail.html
index df8dbcee223218d2afa584533304dd4e0fdeca9a..51a20a618f80f7d49fb820dabfd9eaa9ca7036e9 100644
--- a/submissions/templates/submissions/submission_detail.html
+++ b/submissions/templates/submissions/submission_detail.html
@@ -98,7 +98,18 @@
 	<h3 class="highlight">Editorial decision</h3>
 	<p>For Journal {{ submission.editorial_decision.for_journal }}: {{ submission.editorial_decision.get_decision_display }}<br>(status: {{ submission.editorial_decision.get_status_display }})</p>
 	{% if is_author and submission.editorial_decision.status == submission.editorial_decision.AWAITING_PUBOFFER_ACCEPTANCE %}
-	  <p>Message from Editorial Administration: we are awaiting your response to the publication offer.</p>
+	  <p>
+	    <strong>We are awaiting your response to the publication offer.</strong>
+	    <br>
+	    You can either accept it, or withdraw your manuscript.</p>
+	  <ul class="list-unstyled">
+	    <li class="list-item my-1">
+	      <a class="btn btn-primary" href="{% url 'submissions:accept_puboffer' submission.preprint.identifier_w_vn_nr %}">Accept offer for publication in {{ submission.editorial_decision.for_journal }} (one-click action)</a>
+	    </li>
+	    <li class="list-item my-1">
+	      <a class="btn btn-danger" href="{% url 'submissions:withdraw_manuscript' submission.preprint.identifier_w_vn_nr %}">Turn down offer and withdraw manuscript (leads to confirmation page)</a>
+	    </li>
+	  </ul>
 	{% endif %}
       {% endif %}
 
diff --git a/submissions/urls.py b/submissions/urls.py
index 91d138031898624f2b7661dce0d9e41d4ab255dd..e6bf6e8db89bfd88f9671f01f1389f1ce51683d3 100644
--- a/submissions/urls.py
+++ b/submissions/urls.py
@@ -66,7 +66,6 @@ urlpatterns = [
     # url(r'^admin/{regex}/recommendations/(?P<rec_id>[0-9]+)$'.format(
     #     regex=SUBMISSIONS_COMPLETE_REGEX), views.EICRecommendationView.as_view(),
     #     name='eic_recommendation_detail'),
-    # url(r'^admin/{regex}/recommendations/(?P<rec_id>[0-9]+)$'.format(
     url(r'^admin/{regex}/recommendation$'.format(
         regex=SUBMISSIONS_COMPLETE_REGEX), views.EICRecommendationDetailView.as_view(),
         name='eic_recommendation_detail'),
@@ -94,6 +93,13 @@ urlpatterns = [
         views.fix_editorial_decision,
         name='fix_editorial_decision'
         ),
+    url(
+        r'^{regex}/accept_puboffer$'.format(
+            regex=SUBMISSIONS_COMPLETE_REGEX),
+        views.accept_puboffer,
+        name='accept_puboffer'
+        ),
+
     url(r'^admin/reports$', views.reports_accepted_list, name='reports_accepted_list'),
     url(r'^admin/reports/(?P<report_id>[0-9]+)/compile$',
         views.report_pdf_compile, name='report_pdf_compile'),
diff --git a/submissions/views.py b/submissions/views.py
index 0017d4cf31ce65a1ca6942607feaa7bdb3ce308d..a30f360d0b30e2263a04dd690030f25aa4e1cb5a 100644
--- a/submissions/views.py
+++ b/submissions/views.py
@@ -2157,6 +2157,42 @@ def fix_editorial_decision(request, identifier_w_vn_nr):
         return mail_request.interrupt()
 
 
+@login_required
+def accept_puboffer(request, identifier_w_vn_nr):
+    """
+    Method for authors to accept an outstanding publication offer.
+
+    A publication offer occurs when the relevant College agrees on a
+    Publish recommendation for a journal which is subsidiary to the one
+    originally submitted to by the authors.
+
+    This method handles acceptance of this offer by updating the status
+    of the Submission and of the EditorialDecision. It then redirects to
+    the personal page.
+    """
+
+    submission = get_object_or_404(Submission, preprint__identifier_w_vn_nr=identifier_w_vn_nr)
+
+    if request.user.contributor.id != submission.submitted_by.id:
+        errormessage = ('You are not marked as the submitting author of this Submission, '
+                        'and thus are not allowed to take this action.')
+    if submission.status != STATUS_ACCEPTED_AWAITING_PUBOFFER_ACCEPTANCE:
+        errormessage = ('This Submission\'s status is incompatible with accepting'
+                        ' a publication offer.')
+    if errormessage != '':
+        return render(request, 'scipost/error.html', {'errormessage': errormessage})
+    Submission.objects.filter(id=submission.id).update(status=STATUS_ACCEPTED)
+    EditorialDecision.objects.filter(id=submission.editorialdecision.id).update(
+        status=EditorialDecision.FIXED_AND_ACCEPTED)
+    mail_sender = DirectMailUtil(
+        'authors/confirm_puboffer_acceptance', submission=submission)
+    submission.add_general_event('Authors have accepted the publication offer.')
+    messages.success(request, ('Your acceptance of the publication offer has been registered. '
+                               'Congratulations! We will immediately start producing the proofs.'))
+    return redirect(reverse('scipost:personal_page'))
+
+
+
 # ATTEMPT: to drop
 # class EditorialDecisionFixView(PermissionsMixin, UpdateView):
 #     """This fixes the decision and emails the authors."""
diff --git a/templates/email/authors/confirm_puboffer_acceptance.html b/templates/email/authors/confirm_puboffer_acceptance.html
new file mode 100644
index 0000000000000000000000000000000000000000..1b6a199130a33fb8202ad7a401917d250267b42b
--- /dev/null
+++ b/templates/email/authors/confirm_puboffer_acceptance.html
@@ -0,0 +1,20 @@
+<p>
+  Dear {{ submission.submitted_by.get_title_display }} {{ submission.submitted_by.user.last_name }},
+</p>
+<p>
+  We hereby confirm your acceptance of our publication offer of your Submission
+</p>
+<p>{{ submission.title }}</p>
+<p>by {{ submission.author_list }}</p>
+<p>
+  in {{ submission.editorial_decision.for_journal }}.
+</p>
+<p>
+  Your manuscript will now be taken charge of by our production team,
+  which will soon send you proofs to check before final publication.
+</p>
+<p>Sincerely,</p>
+<p>The SciPost Team.</p>
+{% include 'email/_footer.html' %}
+
+{% include 'email/_submission_thread_uuid.html' with submission=submission %}
diff --git a/templates/email/authors/confirm_puboffer_acceptance.json b/templates/email/authors/confirm_puboffer_acceptance.json
new file mode 100644
index 0000000000000000000000000000000000000000..3b6516881fb4f61c59bdbf9b6a0ebe3a54110a62
--- /dev/null
+++ b/templates/email/authors/confirm_puboffer_acceptance.json
@@ -0,0 +1,12 @@
+{
+    "subject": "SciPost: acceptance of publication offer",
+    "recipient_list": [
+	"submitted_by.user.email"
+    ],
+    "bcc": [
+	"edadmin@scipost.org",
+	"editor_in_charge.user.email"
+    ],
+    "from_name": "SciPost Editorial Administration",
+    "from_email": "edadmin@scipost.org"
+}