diff --git a/journals/models.py b/journals/models.py
index 08421e40dca860d307edabf8fa70142efd2e8577..1d1c67948bfbab360df6878fbe93cb1f85162b38 100644
--- a/journals/models.py
+++ b/journals/models.py
@@ -12,7 +12,7 @@ class UnregisteredAuthor(models.Model):
     last_name = models.CharField(max_length=100)
 
     def __str__(self):
-        return self.first_name + ' ' + self.last_name
+        return self.last_name + ', ' + self.first_name
 
 
 SCIPOST_JOURNALS = (
@@ -166,8 +166,11 @@ class Publication(models.Model):
     author_list = models.CharField(max_length=1000, verbose_name="author list")
     # Authors which have been mapped to contributors:
     authors = models.ManyToManyField (Contributor, blank=True, related_name='authors_pub')
-    authors_unregistered = models.ManyToManyField (UnregisteredAuthor, blank=True)
+    authors_unregistered = models.ManyToManyField (UnregisteredAuthor, blank=True,
+                                                   related_name='authors_unregistered')
     first_author = models.ForeignKey (Contributor, blank=True, null=True)
+    first_author_unregistered = models.ForeignKey (UnregisteredAuthor, blank=True, null=True,
+                                                   related_name='first_author_unregistered')
     authors_claims = models.ManyToManyField (Contributor, blank=True, 
                                              related_name='authors_pub_claims')
     authors_false_claims = models.ManyToManyField (Contributor, blank=True, 
diff --git a/journals/templates/journals/publication_detail.html b/journals/templates/journals/publication_detail.html
index 4d1c16b8a508ba1201184727ff14cb6afca32850..0e9ce6fb3ab5b80adc0ceb38c937477a11c5acf2 100644
--- a/journals/templates/journals/publication_detail.html
+++ b/journals/templates/journals/publication_detail.html
@@ -34,12 +34,25 @@
   <hr class="hr12"/>
   <h3>Editorial Administration tools: </h3>
   <ul>
-    <li>Mark the first author (currently: {{ publication.first_author }})
-      <ul>
-	{% for author in publication.authors.all %}
-	<li><a href="{% url 'journals:mark_first_author' publication_id=publication.id contributor_id=author.id %}">{{ author }}</a></li>
-	{% endfor %}
-      </ul>
+    <li>Mark the first author (currently: {% if publication.first_author %}{{ publication.first_author }} {% elif publication.first_author_unregistered %}{{ publication.first_author_unregistered }} (unregistered){% endif %})
+      <div class="row">
+	<div class="col-5">
+	  <p>registered authors:</p>
+	  <ul>
+	    {% for author in publication.authors.all %}
+	    <li><a href="{% url 'journals:mark_first_author' publication_id=publication.id contributor_id=author.id %}">{{ author }}</a></li>
+	    {% endfor %}
+	  </ul>
+	</div>
+	<div class="col-5">
+	  <p>unregistered authors:</p>
+	  <ul>
+	    {% for author_unreg in publication.authors_unregistered.all %}
+	    <li><a href="{% url 'journals:mark_first_author_unregistered' publication_id=publication.id unregistered_author_id=author_unreg.id %}">{{ author_unreg }}</a></li>
+	    {% endfor %}
+	  </ul>
+	</div>
+      </div>
     </li> 
     <li><a href="{% url 'journals:add_author' publication_id=publication.id %}">Add a missing author</a></li>
     <li><a href="{% url 'journals:create_citation_list_metadata' doi_string=publication.doi_string %}">Create/update citation list metadata</a></li>
diff --git a/journals/urls.py b/journals/urls.py
index dc4ef35c8ffd58d3afe39e7881ffacf94931d9a3..2a4566696ab3b89e2ef270368466283f73491041 100644
--- a/journals/urls.py
+++ b/journals/urls.py
@@ -46,6 +46,9 @@ urlpatterns = [
     url(r'^mark_first_author/(?P<publication_id>[0-9]+)/(?P<contributor_id>[0-9]+)$',
         journals_views.mark_first_author,
         name='mark_first_author'),
+    url(r'^mark_first_author_unregistered/(?P<publication_id>[0-9]+)/(?P<unregistered_author_id>[0-9]+)$',
+        journals_views.mark_first_author_unregistered,
+        name='mark_first_author_unregistered'),
     url(r'^add_author/(?P<publication_id>[0-9]+)/(?P<contributor_id>[0-9]+)$',
         journals_views.add_author,
         name='add_author'),
diff --git a/journals/views.py b/journals/views.py
index 64b8e4984d33e8e7306e09b1d810eae96536a2b1..95002ce96b26f0ad44b60ffaeea28d7a68379102 100644
--- a/journals/views.py
+++ b/journals/views.py
@@ -323,6 +323,19 @@ def mark_first_author(request, publication_id, contributor_id):
     publication = get_object_or_404(Publication, id=publication_id)
     contributor = get_object_or_404(Contributor, id=contributor_id)
     publication.first_author = contributor
+    publication.first_author_unregistered = None
+    publication.save()
+    return redirect(reverse('scipost:publication_detail', 
+                            kwargs={'doi_string': publication.doi_string,}))
+
+
+@permission_required('scipost.can_publish_accepted_submission', return_403=True)
+@transaction.atomic
+def mark_first_author_unregistered(request, publication_id, unregistered_author_id):
+    publication = get_object_or_404(Publication, id=publication_id)
+    unregistered_author = get_object_or_404(UnregisteredAuthor, id=unregistered_author_id)
+    publication.first_author = None
+    publication.first_author_unregistered = unregistered_author
     publication.save()
     return redirect(reverse('scipost:publication_detail', 
                             kwargs={'doi_string': publication.doi_string,}))
@@ -554,14 +567,21 @@ def create_metadata_xml(request, doi_string):
         initial['metadata_xml'] += '</person_name>\n'
 
     for author_unreg in publication.authors_unregistered.all():
-        #publication.metadata_xml += (
-        initial['metadata_xml'] += (
-            '<person_name sequence=\'additional\' contributor_role=\'author\'> '
-            '<given_name>' + author_unreg.first_name + '</given_name> '
-            '<surname>' + author_unreg.last_name + '</surname> '
-            '</person_name>'
-        )
-
+        if author_unreg == publication.first_author_unregistered:
+            #publication.metadata_xml += (
+            initial['metadata_xml'] += (
+                '<person_name sequence=\'first\' contributor_role=\'author\'> '
+                '<given_name>' + author_unreg.first_name + '</given_name> '
+                '<surname>' + author_unreg.last_name + '</surname> '
+            )
+        else:
+            #publication.metadata_xml += (
+            initial['metadata_xml'] += (
+                '<person_name sequence=\'additional\' contributor_role=\'author\'> '
+                '<given_name>' + author_unreg.first_name + '</given_name> '
+                '<surname>' + author_unreg.last_name + '</surname> '
+            )
+        initial['metadata_xml'] += '</person_name>\n'
     #publication.metadata_xml += '</contributors>\n'
     initial['metadata_xml'] += '</contributors>\n'