diff --git a/owasp.xml b/owasp.xml
index d851f615c4..c504d51e0f 100644
--- a/owasp.xml
+++ b/owasp.xml
@@ -65,4 +65,11 @@
         </notes>
         <cve>CVE-2023-52070</cve>
     </suppress>
+    <suppress>
+        <notes>
+            This is a complete nonsense vulnerability. Some automated tool has
+            gone completely bananas.
+        </notes>
+        <cve>CVE-2024-23076</cve>
+    </suppress>
 </suppressions>
diff --git a/view/src/main/java/se/su/dsv/scipro/components/DisableSubmitButtonsOnSubmit.java b/view/src/main/java/se/su/dsv/scipro/components/DisableSubmitButtonsOnSubmit.java
index 3a98b9e500..119359b2f6 100644
--- a/view/src/main/java/se/su/dsv/scipro/components/DisableSubmitButtonsOnSubmit.java
+++ b/view/src/main/java/se/su/dsv/scipro/components/DisableSubmitButtonsOnSubmit.java
@@ -7,7 +7,7 @@ import org.apache.wicket.markup.head.OnEventHeaderItem;
 import org.apache.wicket.markup.html.form.Form;
 
 /**
- * Disables all elements with {@code [type=submit]}
+ * {@link Form} behavior that disables all elements with {@code [type=submit]} when the form is submitted.
  */
 public class DisableSubmitButtonsOnSubmit extends Behavior {
     @Override
@@ -21,10 +21,12 @@ public class DisableSubmitButtonsOnSubmit extends Behavior {
     @Override
     public void renderHead(Component component, IHeaderResponse response) {
         super.renderHead(component, response);
-        final String javaScript = "const submitButtons = event.target.querySelectorAll(\"[type=submit]\");\n" +
-                                  "for (const button of submitButtons) {\n" +
-                                  "    button.disabled = true;\n" +
-                                  "}\n";
+        final String javaScript = """
+                                  const submitButtons = event.target.querySelectorAll("[type=submit]");
+                                  for (const button of submitButtons) {
+                                      button.classList.add('disabled');
+                                  }
+                                  """;
         response.render(OnEventHeaderItem.forComponent(component, "submit", javaScript));
     }
 }
\ No newline at end of file
diff --git a/view/src/main/java/se/su/dsv/scipro/finalthesis/FinalThesisPanel$RevisionPanel.html b/view/src/main/java/se/su/dsv/scipro/finalthesis/FinalThesisPanel$RevisionPanel.html
index 4794a766db..e3af36075e 100644
--- a/view/src/main/java/se/su/dsv/scipro/finalthesis/FinalThesisPanel$RevisionPanel.html
+++ b/view/src/main/java/se/su/dsv/scipro/finalthesis/FinalThesisPanel$RevisionPanel.html
@@ -5,7 +5,7 @@
     <strong>Status:</strong> <span class="text-danger">REVISION NEEDED</span>
     <div class="help-box">
         <span wicket:id="rejectedDateLabel"></span><br>
-        Your supervisor have decided that you need to revise your final thesis and then upload it again.<br>
+        Your supervisor has decided that you need to revise your final thesis and then upload it again.<br>
         <a href="#" wicket:id="forumLink">Go to the forum to view the reason behind this decision</a>.
     </div>
 </wicket:panel>
diff --git a/view/src/main/java/se/su/dsv/scipro/project/pages/ProjectDetailsPage.java b/view/src/main/java/se/su/dsv/scipro/project/pages/ProjectDetailsPage.java
index ae81f7bb29..33864f187d 100755
--- a/view/src/main/java/se/su/dsv/scipro/project/pages/ProjectDetailsPage.java
+++ b/view/src/main/java/se/su/dsv/scipro/project/pages/ProjectDetailsPage.java
@@ -11,7 +11,9 @@ import se.su.dsv.scipro.activityplan.UpcomingActivitiesPanel;
 import se.su.dsv.scipro.checklists.ChecklistOverviewPanel;
 import se.su.dsv.scipro.components.menuhighlighting.MenuHighlightAuthorMyProjects;
 import se.su.dsv.scipro.finalseminar.OverviewSeminarPanel;
+import se.su.dsv.scipro.finalthesis.FinalThesis;
 import se.su.dsv.scipro.finalthesis.FinalThesisPanel;
+import se.su.dsv.scipro.finalthesis.FinalThesisService;
 import se.su.dsv.scipro.group.AuthorGroupPage;
 import se.su.dsv.scipro.group.GroupsOverviewPanel;
 import se.su.dsv.scipro.latestevents.LatestEventsPanel;
@@ -42,12 +44,23 @@ public class ProjectDetailsPage extends AbstractProjectDetailsPage implements Me
     public static final String EXTERNAL_RESOURCES = "externalResources";
     public static final String EXTERNAL_LINK = "externalLink";
 
+    private final boolean shouldFillOutSurvey;
+
     @Inject
     private SurveyService surveyService;
 
+    @Inject
+    private FinalThesisService finalThesisService;
+
+
     public ProjectDetailsPage(PageParameters pp) {
         super(pp);
 
+        FinalThesis finalThesis = finalThesisService.findByProject(getActiveProject());
+        boolean finalThesisIsRejected = (finalThesis != null && finalThesis.isRejected());
+        shouldFillOutSurvey = surveyService.shouldFillOutSurvey(getActiveProject(), SciProSession.get().getUser())
+                              && !finalThesisIsRejected;
+
         add(new ExternalResourcesPanel(EXTERNAL_RESOURCES, LambdaModel.of(projectModel, se.su.dsv.scipro.project.Project::getProjectType, se.su.dsv.scipro.project.Project::setProjectType)));
 
         add(new ExternalLinkPanel(EXTERNAL_LINK, projectModel));
@@ -90,7 +103,6 @@ public class ProjectDetailsPage extends AbstractProjectDetailsPage implements Me
             @Override
             protected void onConfigure() {
                 super.onConfigure();
-                final boolean shouldFillOutSurvey = surveyService.shouldFillOutSurvey(getActiveProject(), SciProSession.get().getUser());
                 setVisibilityAllowed(shouldFillOutSurvey);
             }
         });
@@ -103,13 +115,11 @@ public class ProjectDetailsPage extends AbstractProjectDetailsPage implements Me
     @Override
     protected void onConfigure() {
         super.onConfigure();
-        if (surveyService.shouldFillOutSurvey(getActiveProject(), SciProSession.get().getUser())) {
-            if (getSession().getMetaData(ProjectFinalSurveyPage.SURVEY_VISITED) == null) {
-                getFeedbackMessages().forEach(getSession().getFeedbackMessages()::add);
-                throw new RestartResponseException(
-                        ProjectFinalSurveyPage.class,
-                        ProjectFinalSurveyPage.getPageParameters(getActiveProject()));
-            }
+        if (shouldFillOutSurvey && getSession().getMetaData(ProjectFinalSurveyPage.SURVEY_VISITED) == null) {
+            getFeedbackMessages().forEach(getSession().getFeedbackMessages()::add);
+            throw new RestartResponseException(
+                    ProjectFinalSurveyPage.class,
+                    ProjectFinalSurveyPage.getPageParameters(getActiveProject()));
         }
     }