diff --git a/core/src/main/java/se/su/dsv/scipro/project/Author.java b/core/src/main/java/se/su/dsv/scipro/project/Author.java
index a43e55cc8e..e8f2ac5704 100644
--- a/core/src/main/java/se/su/dsv/scipro/project/Author.java
+++ b/core/src/main/java/se/su/dsv/scipro/project/Author.java
@@ -44,6 +44,10 @@ public class Author {
     @Column(name = "reflection_status")
     private ReflectionStatus reflectionStatus = ReflectionStatus.NOT_SUBMITTED;
 
+    @Basic
+    @Column(name = "reflection_comment_by_supervisor")
+    private String reflectionSupervisorComment;
+
     public Project getProject() {
         return project;
     }
@@ -76,6 +80,14 @@ public class Author {
         this.reflectionStatus = reflectionStatus;
     }
 
+    public void setReflectionSupervisorComment(String reflectionSupervisorComment) {
+        this.reflectionSupervisorComment = reflectionSupervisorComment;
+    }
+
+    public String getReflectionSupervisorComment() {
+        return reflectionSupervisorComment;
+    }
+
     @Embeddable
     public static class AuthorPK implements Serializable {
         private Long projectId;
diff --git a/core/src/main/java/se/su/dsv/scipro/reflection/ReflectionService.java b/core/src/main/java/se/su/dsv/scipro/reflection/ReflectionService.java
index 3e0109c694..139dc9a6d9 100644
--- a/core/src/main/java/se/su/dsv/scipro/reflection/ReflectionService.java
+++ b/core/src/main/java/se/su/dsv/scipro/reflection/ReflectionService.java
@@ -20,8 +20,9 @@ public interface ReflectionService {
      * This is done individually by author.
      *
      * @param author the author whose reflection does not meet the minimum requirements.
+     * @param supervisorComment feedback provided by the supervisor so the author knows what to improve.
      */
-    void requestNewReflection(Project project, User author);
+    void requestNewReflection(Project project, User author, String supervisorComment);
 
     Reflection getReflection(Project project, User author);
 }
diff --git a/core/src/main/java/se/su/dsv/scipro/reflection/ReflectionServiceImpl.java b/core/src/main/java/se/su/dsv/scipro/reflection/ReflectionServiceImpl.java
index c3a6a5c792..c61cfd9893 100644
--- a/core/src/main/java/se/su/dsv/scipro/reflection/ReflectionServiceImpl.java
+++ b/core/src/main/java/se/su/dsv/scipro/reflection/ReflectionServiceImpl.java
@@ -57,10 +57,11 @@ class ReflectionServiceImpl implements ReflectionService {
 
     @Override
     @Transactional
-    public void requestNewReflection(Project project, User user) {
+    public void requestNewReflection(Project project, User user, String supervisorComment) {
         authorRepository.findByProjectAndUser(project, user)
                 .ifPresent(author -> {
                     author.setReflectionStatus(ReflectionStatus.IMPROVEMENTS_NEEDED);
+                    author.setReflectionSupervisorComment(supervisorComment);
                 });
     }
 
@@ -74,7 +75,9 @@ class ReflectionServiceImpl implements ReflectionService {
     private Reflection toReflection(Author author) {
         return switch (author.getReflectionStatus()) {
             case SUBMITTED -> new Reflection.Submitted(author.getReflection());
-            case IMPROVEMENTS_NEEDED -> new Reflection.ImprovementsNeeded(author.getReflection(), "");
+            case IMPROVEMENTS_NEEDED -> new Reflection.ImprovementsNeeded(
+                    author.getReflection(),
+                    author.getReflectionSupervisorComment());
             default -> new Reflection.NotSubmitted();
         };
     }
diff --git a/core/src/main/resources/db/migration/V390__reflection_comment_by_supervisor.sql b/core/src/main/resources/db/migration/V390__reflection_comment_by_supervisor.sql
new file mode 100644
index 0000000000..f3cc5f2ce1
--- /dev/null
+++ b/core/src/main/resources/db/migration/V390__reflection_comment_by_supervisor.sql
@@ -0,0 +1 @@
+ALTER TABLE `project_user` ADD COLUMN `reflection_comment_by_supervisor` TEXT NULL;
diff --git a/core/src/test/java/se/su/dsv/scipro/reflection/ReflectionServiceTest.java b/core/src/test/java/se/su/dsv/scipro/reflection/ReflectionServiceTest.java
index 6e50b9d975..745def4bcd 100644
--- a/core/src/test/java/se/su/dsv/scipro/reflection/ReflectionServiceTest.java
+++ b/core/src/test/java/se/su/dsv/scipro/reflection/ReflectionServiceTest.java
@@ -114,7 +114,7 @@ public class ReflectionServiceTest extends IntegrationTest {
         assertFalse(reflectionService.hasToFillInReflection(project, author),
                 "After submitting the initial reflection it should no longer be required");
 
-        reflectionService.requestNewReflection(project, author);
+        reflectionService.requestNewReflection(project, author, "Very bad reflection");
         assertTrue(reflectionService.hasToFillInReflection(project, author),
                 "After supervisor requests resubmission the author should now be required to submit a new reflection");
         assertEquals(myReflection, reflectionService.getSubmittedReflection(project, author),
diff --git a/view/src/main/java/se/su/dsv/scipro/grading/ReflectionModalBodyPanel.java b/view/src/main/java/se/su/dsv/scipro/grading/ReflectionModalBodyPanel.java
index 9fa5676240..d5f3ce9a43 100644
--- a/view/src/main/java/se/su/dsv/scipro/grading/ReflectionModalBodyPanel.java
+++ b/view/src/main/java/se/su/dsv/scipro/grading/ReflectionModalBodyPanel.java
@@ -74,7 +74,9 @@ class ReflectionModalBodyPanel extends Panel {
 
             IModel<String> commentModel = new Model<>();
 
-            add(new TextArea<>("comment", commentModel));
+            TextArea<String> comment = new TextArea<>("comment", commentModel);
+            comment.setRequired(true);
+            add(comment);
 
             add(new AjaxSubmitLink("submit") {
                 @Override
@@ -83,7 +85,8 @@ class ReflectionModalBodyPanel extends Panel {
 
                     reflectionService.requestNewReflection(
                             projectModel.getObject(),
-                            authorModel.getObject());
+                            authorModel.getObject(),
+                            commentModel.getObject());
 
                     target.add(ReflectionModalBodyPanel.this);
                 }