diff --git a/comments/forms.py b/comments/forms.py
index c114082fd6aa21980db250503eb72edec522bdd1..5cf2285e16822c25c14525b99e648f8533bfa255 100644
--- a/comments/forms.py
+++ b/comments/forms.py
@@ -25,7 +25,7 @@ class CommentForm(forms.ModelForm):
             {'rows': 3, 'placeholder': '(these remarks will not be publicly visible)'})
         self.fields['anonymous'].initial = True
 
-        if not self.is_report_comment:
+        if self.is_report_comment:
             del self.fields['anonymous']
 
 
diff --git a/scipost/static/scipost/assets/css/_reports.scss b/scipost/static/scipost/assets/css/_reports.scss
index adf4a971511b20eec4c7350c95ef9b7898b89ac2..1398493dca9d69b5a74f207ed724ad5b11303a58 100644
--- a/scipost/static/scipost/assets/css/_reports.scss
+++ b/scipost/static/scipost/assets/css/_reports.scss
@@ -75,8 +75,4 @@
         padding: 0.5rem 0.75rem;
         white-space: pre-wrap;
     }
-
-    p {
-        white-space: pre;
-    }
 }
diff --git a/submissions/forms.py b/submissions/forms.py
index cb3abf8adee78d334b9a536edadba517add38d79..abb1e28670f0068ed5eea108022c72984487b7e8 100644
--- a/submissions/forms.py
+++ b/submissions/forms.py
@@ -776,9 +776,15 @@ class ReportForm(forms.ModelForm):
             'cols': 100
         })
 
+        # Required fields on submission; optional on save as draft
+        if 'save_submit' in self.data:
+            required_fields = ['report', 'recommendation', 'qualification']
+        else:
+            required_fields = []
+
         # If the Report is not a followup: Explicitly assign more fields as being required!
         if not self.instance.is_followup_report:
-            required_fields = [
+            required_fields += [
                 'strengths',
                 'weaknesses',
                 'requested_changes',
@@ -789,12 +795,12 @@ class ReportForm(forms.ModelForm):
                 'formatting',
                 'grammar'
             ]
-            for field in required_fields:
-                self.fields[field].required = True
+        for field in required_fields:
+            self.fields[field].required = True
 
         # Let user know the field is required!
         for field in self.fields:
-            if self.fields[field].required:
+            if self.fields[field].required or field in ['report', 'recommendation', 'qualification']:
                 self.fields[field].label += ' *'
 
         if self.submission.eicrecommendations.active().exists():
@@ -828,6 +834,8 @@ class ReportForm(forms.ModelForm):
             if self.submission.referees_flagged:
                 if report.author.user.last_name in self.submission.referees_flagged:
                     report.flagged = True
+        # r = report.recommendation
+        # t = report.qualification
         report.save()
         return report
 
diff --git a/submissions/migrations/0029_auto_20180627_1207.py b/submissions/migrations/0029_auto_20180627_1207.py
new file mode 100644
index 0000000000000000000000000000000000000000..93442a997bf0618abceb633e31f3e24fb0ed5e30
--- /dev/null
+++ b/submissions/migrations/0029_auto_20180627_1207.py
@@ -0,0 +1,30 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.4 on 2018-06-27 10:07
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('submissions', '0028_auto_20180621_0551'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='report',
+            name='qualification',
+            field=models.PositiveSmallIntegerField(blank=True, choices=[(None, '-'), (4, 'expert in this subject'), (3, 'very knowledgeable in this subject'), (2, 'knowledgeable in this subject'), (1, 'generally qualified'), (0, 'not qualified')], null=True, verbose_name='Qualification to referee this: I am'),
+        ),
+        migrations.AlterField(
+            model_name='report',
+            name='recommendation',
+            field=models.SmallIntegerField(blank=True, choices=[(None, '-'), (1, 'Publish as Tier I (top 10% of papers in this journal, qualifies as Select)'), (2, 'Publish as Tier II (top 50% of papers in this journal)'), (3, 'Publish as Tier III (meets the criteria of this journal)'), (-1, 'Ask for minor revision'), (-2, 'Ask for major revision'), (-3, 'Reject')], null=True),
+        ),
+        migrations.AlterField(
+            model_name='report',
+            name='report',
+            field=models.TextField(blank=True),
+        ),
+    ]
diff --git a/submissions/models.py b/submissions/models.py
index 12115c7eddc5c46bf7675119a2e1621bfd641bcf..554b610d42ef747767faa5324ddfdd02798381c7 100644
--- a/submissions/models.py
+++ b/submissions/models.py
@@ -500,13 +500,13 @@ class Report(SubmissionRelatedObjectMixin, models.Model):
     author = models.ForeignKey('scipost.Contributor', on_delete=models.CASCADE,
                                related_name='reports')
     qualification = models.PositiveSmallIntegerField(
-        choices=REFEREE_QUALIFICATION,
+        null=True, blank=True, choices=REFEREE_QUALIFICATION,
         verbose_name="Qualification to referee this: I am")
 
     # Text-based reporting
     strengths = models.TextField(blank=True)
     weaknesses = models.TextField(blank=True)
-    report = models.TextField()
+    report = models.TextField(blank=True)
     requested_changes = models.TextField(verbose_name="requested changes", blank=True)
 
     # Comments can be added to a Submission
@@ -526,7 +526,7 @@ class Report(SubmissionRelatedObjectMixin, models.Model):
     grammar = models.SmallIntegerField(choices=QUALITY_SPEC, null=True, blank=True,
                                        verbose_name="Quality of English grammar")
 
-    recommendation = models.SmallIntegerField(choices=REPORT_REC)
+    recommendation = models.SmallIntegerField(null=True, blank=True, choices=REPORT_REC)
     remarks_for_editors = models.TextField(blank=True,
                                            verbose_name='optional remarks for the Editors only')
     needs_doi = models.NullBooleanField(default=None)
diff --git a/submissions/views.py b/submissions/views.py
index e4e2d0cdbb0bd291b48ef05d9fba75e00e37e8ea..e4368d7b415da19ff6c5ecae739cecb4bae72248 100644
--- a/submissions/views.py
+++ b/submissions/views.py
@@ -1406,6 +1406,8 @@ def submit_report(request, arxiv_identifier_w_vn_nr):
 
         messages.success(request, 'Thank you for your Report')
         return redirect(submission.get_absolute_url())
+    elif request.POST:
+        messages.error(request, 'Report not submitted, please read the errors below.')
 
     context = {'submission': submission, 'form': form}
     return render(request, 'submissions/report_form.html', context)