diff --git a/core/templates/core/feedback_form.html b/core/templates/core/feedback_form.html
index 4aa8e4a9443e7188bcc516217f9369236d22b1a8..a63de4e4ddadd33669e392e608eb726687ae6e9f 100644
--- a/core/templates/core/feedback_form.html
+++ b/core/templates/core/feedback_form.html
@@ -11,7 +11,10 @@
   <div class="col my-2 nopadding-right">
 
     <div class="card mb-2">
-      <h4 class="card-header">{{feedback.of_submission.type.name}}</h4>
+      <div class="card-header form-inline pb-1">
+        <h4 class="mr-2">{{feedback.of_submission.type.name}}</h4>
+        <a href="{% url 'download_submissions' feedback.of_submission.slug %}" class="btn btn-sm btn-outline-secondary mb-1">Download</a>
+      </div>
       <div class="card-block">
         <div id="student_text" class="editor editor-code"></div>
       </div>
@@ -98,11 +101,11 @@
 
           {# Beware! compares status and origin #}
           {% if feedback.status == feedback.NEEDS_REVIEW or feedback.status == feedback.EDITABLE %}
-            <button type="submit" form="form1" class="btn btn-success mr-1 mb-1" name="update" value="Next">Next</button>
+          <button type="submit" form="form1" class="btn btn-success mr-1 mb-1" name="update" value="Next">Next</button>
           {% endif %}
 
           {% if feedback.origin != feedback.MANUAL %}
-            <a href="{% url 'FeedbackDelete' feedback.slug %}" class="btn btn-outline-danger mr-1 mb-1" name="delete" value="Delete">Delete auto feedback</a>
+          <a href="{% url 'FeedbackDelete' feedback.slug %}" class="btn btn-outline-danger mr-1 mb-1" name="delete" value="Delete">Delete auto feedback</a>
           {% endif %}
 
           {% if feedback.status == feedback.ACCEPTED %}
diff --git a/core/urls.py b/core/urls.py
index 992524b9c8caaed5d945dd108715942fbc6ed718..d880aebe6cb1eaae65c3545486898a3528e0255b 100644
--- a/core/urls.py
+++ b/core/urls.py
@@ -16,6 +16,7 @@ urlpatterns = [
     url(r'^feedback/delete/(?P<feedback_slug>\w+)/$', views.delete_feedback, name='FeedbackDelete'),
 
     url(r'^submission/view/(?P<slug>\w+)/$', views.SubmissionView.as_view(), name='SubmissionView'),
+    url(r'^submission/download/(?P<slug>\w+)/$', views.download_submissions, name='download_submissions'),
 
     url(r'^csv/$', views.export_csv, name='export')
 ]
diff --git a/core/views/feedback.py b/core/views/feedback.py
index 767e14d21c6cf41f20cc14ca3f21878a1160cac7..418868cc12f4bb60c1080f98593801c5accd05fb 100644
--- a/core/views/feedback.py
+++ b/core/views/feedback.py
@@ -1,7 +1,7 @@
 from random import choice
 
 from django.contrib import messages
-from django.http import Http404, HttpResponseRedirect
+from django.http import Http404, HttpResponseRedirect, HttpResponse
 from django.urls import reverse
 from django.utils.decorators import method_decorator
 from django.views.generic.edit import UpdateView
@@ -56,6 +56,8 @@ class FeedbackEdit(UpdateView):
         elif instance.status == Feedback.OPEN:
             instance.reassign_to_tutor(self.request.user)
             return instance
+        elif not (instance.of_tutor == self.request.user or in_groups(self.request.user, ('Reviewers', ))):
+            messages.error(self.request, "Get your hands of somebody else's feedback!")
         raise Http404
 
     def form_valid(self, form):
@@ -90,3 +92,17 @@ class FeedbackEdit(UpdateView):
         context = super(FeedbackEdit, self).get_context_data(**kwargs)
         context['grady_says'] = choice(grady_says)
         return context
+
+@group_required('Reviewers', 'Tutors')
+def download_submissions(request, slug):
+    submission = Submission.objects.get(slug=slug)
+
+    if not (submission.feedback.of_tutor == request.user or in_groups(request.user, ('Reviewers', ))):
+        messages.error(request, "Get your hands of somebody else's feedback!")
+        return HttpResponseRedirect(reverse('start'))
+
+    response = HttpResponse(content_type='text/plain')
+    response['Content-Disposition'] = 'attachment; filename="%s_%s.c"' % (submission.type.name, submission.slug)
+    response.write(submission.text)
+
+    return response