diff --git a/src/main/java/org/olat/ims/qti21/ui/AssessmentResultController.java b/src/main/java/org/olat/ims/qti21/ui/AssessmentResultController.java
index f6409c078a50cc1cb7b5e182fa84b03575e7557e..ede9032ef3eb526bd3be2b6eb0b8b03ee1cb4cfb 100644
--- a/src/main/java/org/olat/ims/qti21/ui/AssessmentResultController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/AssessmentResultController.java
@@ -379,6 +379,7 @@ public class AssessmentResultController extends FormBasicController {
 				String solutionId = "solutionItem" + count++;
 				InteractionResultFormItem formItem = new InteractionResultFormItem(solutionId, interaction, resolvedAssessmentItem);
 				formItem.setShowSolution(true);
+				formItem.setShowCorrectSolution(true);
 				initInteractionResultFormItem(formItem, sessionState);
 				layoutCont.add(solutionId, formItem);
 				solutionFormItem = formItem;
diff --git a/src/main/java/org/olat/ims/qti21/ui/components/AssessmentObjectComponentRenderer.java b/src/main/java/org/olat/ims/qti21/ui/components/AssessmentObjectComponentRenderer.java
index 086cbe015c847efef9359c2ce324aa319d79bc2e..2042a5bf980285bec5f91a2f31a8e5319d02d5e3 100644
--- a/src/main/java/org/olat/ims/qti21/ui/components/AssessmentObjectComponentRenderer.java
+++ b/src/main/java/org/olat/ims/qti21/ui/components/AssessmentObjectComponentRenderer.java
@@ -277,7 +277,7 @@ public abstract class AssessmentObjectComponentRenderer extends DefaultComponent
 		}
 	}
 	
-	private void renderTestItemModalFeedback_correctSolution(AssessmentRenderer renderer, StringOutput sb, ModalFeedback modalFeedback,
+	protected void renderTestItemModalFeedback_correctSolution(AssessmentRenderer renderer, StringOutput sb, ModalFeedback modalFeedback,
 			AssessmentObjectComponent component, ResolvedAssessmentItem resolvedAssessmentItem, ItemSessionState itemSessionState,
 			URLBuilder ubu, Translator translator) {
 		
diff --git a/src/main/java/org/olat/ims/qti21/ui/components/InteractionResultComponent.java b/src/main/java/org/olat/ims/qti21/ui/components/InteractionResultComponent.java
index 020d7308cbaada6390637781779079e9abea556a..e4cc6f59db703021267f112e2c596621057e65e6 100644
--- a/src/main/java/org/olat/ims/qti21/ui/components/InteractionResultComponent.java
+++ b/src/main/java/org/olat/ims/qti21/ui/components/InteractionResultComponent.java
@@ -49,6 +49,7 @@ public class InteractionResultComponent extends AssessmentObjectComponent  {
 	
 	private ItemSessionState itemSessionState;
 	private boolean showSolution;
+	private boolean showCorrectSolution;
 	
 	public InteractionResultComponent(String name, Interaction interaction,
 			ResolvedAssessmentItem resolvedAssessmentItem, InteractionResultFormItem qtiItem) {
@@ -66,6 +67,14 @@ public class InteractionResultComponent extends AssessmentObjectComponent  {
 		this.showSolution = showSolution;
 	}
 
+	public boolean isShowCorrectSolution() {
+		return showCorrectSolution;
+	}
+
+	public void setShowCorrectSolution(boolean showCorrectSolution) {
+		this.showCorrectSolution = showCorrectSolution;
+	}
+
 	public ResolvedAssessmentTest getResolvedAssessmentTest() {
 		return resolvedAssessmentTest;
 	}
diff --git a/src/main/java/org/olat/ims/qti21/ui/components/InteractionResultComponentRenderer.java b/src/main/java/org/olat/ims/qti21/ui/components/InteractionResultComponentRenderer.java
index 61782b5f8e622779ccf04f3ffab53a86b3627a9c..aa2eb8a49cd604511a17ad6ec62d73e9ec7a60c2 100644
--- a/src/main/java/org/olat/ims/qti21/ui/components/InteractionResultComponentRenderer.java
+++ b/src/main/java/org/olat/ims/qti21/ui/components/InteractionResultComponentRenderer.java
@@ -25,13 +25,19 @@ import org.olat.core.gui.render.Renderer;
 import org.olat.core.gui.render.StringOutput;
 import org.olat.core.gui.render.URLBuilder;
 import org.olat.core.gui.translator.Translator;
+import org.olat.core.util.StringHelper;
+import org.olat.ims.qti21.QTI21Constants;
 
+import uk.ac.ed.ph.jqtiplus.attribute.Attribute;
 import uk.ac.ed.ph.jqtiplus.node.content.basic.Block;
 import uk.ac.ed.ph.jqtiplus.node.content.basic.Flow;
 import uk.ac.ed.ph.jqtiplus.node.content.variable.PrintedVariable;
+import uk.ac.ed.ph.jqtiplus.node.item.AssessmentItem;
+import uk.ac.ed.ph.jqtiplus.node.item.ModalFeedback;
 import uk.ac.ed.ph.jqtiplus.node.item.interaction.Interaction;
 import uk.ac.ed.ph.jqtiplus.resolution.ResolvedAssessmentItem;
 import uk.ac.ed.ph.jqtiplus.state.ItemSessionState;
+import uk.ac.ed.ph.jqtiplus.types.Identifier;
 
 /**
  * 
@@ -64,6 +70,53 @@ public class InteractionResultComponentRenderer extends AssessmentObjectComponen
 		} else if(interaction instanceof Flow) {
 			renderFlow(assessmentRenderer, sb, cmp, resolvedAssessmentItem, itemSessionState, (Flow)interaction, ubu, translator);
 		}
+		
+		if(cmp.isShowCorrectSolution()) {
+			AssessmentItem assessmentItem = resolvedAssessmentItem.getRootNodeLookup().extractIfSuccessful();
+			for(ModalFeedback modalFeedback:assessmentItem.getModalFeedbacks()) {
+				Identifier outcomeIdentifier = modalFeedback.getOutcomeIdentifier();
+				if(QTI21Constants.CORRECT_SOLUTION_IDENTIFIER.equals(outcomeIdentifier)) {
+					sb.append("<div class='modalFeedback'>");
+					renderAssessmentItemCorrectSolutionModalFeedback(assessmentRenderer, sb, modalFeedback,
+							cmp, resolvedAssessmentItem, itemSessionState, ubu, translator);
+					sb.append("</div>");
+				}
+			}
+		}
+	}
+	
+	/**
+	 * A special rendering of "correct solution" feedback for the results report (without the open / close part).
+	 * @param renderer
+	 * @param sb
+	 * @param modalFeedback
+	 * @param component
+	 * @param resolvedAssessmentItem
+	 * @param itemSessionState
+	 * @param ubu
+	 * @param translator
+	 */
+	private void renderAssessmentItemCorrectSolutionModalFeedback(AssessmentRenderer renderer, StringOutput sb, ModalFeedback modalFeedback,
+			AssessmentObjectComponent component, ResolvedAssessmentItem resolvedAssessmentItem, ItemSessionState itemSessionState,
+			URLBuilder ubu, Translator translator) {
+		
+		sb.append("<div class='modalFeedback o_togglebox_wrapper clearfix'>");
+		Attribute<?> title = modalFeedback.getAttributes().get("title");
+		String feedbackTitle = null;
+		if(title != null && title.getValue() != null) {
+			feedbackTitle = title.getValue().toString();
+		}
+		if(!StringHelper.containsNonWhitespace(feedbackTitle)) {
+			feedbackTitle = translator.translate("correct.solution");
+		}
+
+		sb.append("<h5>").append(StringHelper.escapeHtml(feedbackTitle)).append("</h5>");
+		sb.append("<div id='modal-correct-solution'><div class='o_togglebox_content clearfix'>");
+
+		modalFeedback.getFlowStatics().forEach((flow)
+			-> renderFlow(renderer, sb, component, resolvedAssessmentItem, itemSessionState, flow, ubu, translator));
+
+		sb.append("</div></div></div>");
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/ims/qti21/ui/components/InteractionResultFormItem.java b/src/main/java/org/olat/ims/qti21/ui/components/InteractionResultFormItem.java
index 26a1a60f652c81c8da18a0bc3c7ac9d7a4745e55..cf44422a722eb848ff64cff0d602ee4f7ba5b0b0 100644
--- a/src/main/java/org/olat/ims/qti21/ui/components/InteractionResultFormItem.java
+++ b/src/main/java/org/olat/ims/qti21/ui/components/InteractionResultFormItem.java
@@ -74,6 +74,14 @@ public class InteractionResultFormItem extends AssessmentObjectFormItem {
 	public void setShowSolution(boolean showSolution) {
 		component.setShowSolution(showSolution);
 	}
+	
+	public boolean isShowCorrectSolution() {
+		return component.isShowCorrectSolution();
+	}
+	
+	public void setShowCorrectSolution(boolean showCorrectSolution) {
+		component.setShowCorrectSolution(showCorrectSolution);
+	}
 
 	@Override
 	public InteractionResultComponent getComponent() {