diff --git a/src/main/java/org/olat/ims/qti21/model/xml/interactions/HotspotAssessmentItemBuilder.java b/src/main/java/org/olat/ims/qti21/model/xml/interactions/HotspotAssessmentItemBuilder.java
index 14a62d3130e3a29b7177e59b68779a547ba2602b..def355e230e9c97e3484231da07ff1a6aa10b59d 100644
--- a/src/main/java/org/olat/ims/qti21/model/xml/interactions/HotspotAssessmentItemBuilder.java
+++ b/src/main/java/org/olat/ims/qti21/model/xml/interactions/HotspotAssessmentItemBuilder.java
@@ -147,12 +147,12 @@ public class HotspotAssessmentItemBuilder extends AssessmentItemBuilder {
 	
 	private void extractCorrectAnswers() {
 		correctAnswers = new ArrayList<>(5);
-		
-		List<ResponseDeclaration> responseDeclarations = assessmentItem.getResponseDeclarations();
-		if(responseDeclarations.size() == 1) {
-			ResponseDeclaration responseDeclaration = responseDeclarations.get(0);
-			CorrectResponse correctResponse = responseDeclaration.getCorrectResponse();
-			if(correctResponse != null) {
+
+		if(hotspotInteraction != null) {
+			ResponseDeclaration responseDeclaration = assessmentItem
+					.getResponseDeclaration(hotspotInteraction.getResponseIdentifier());
+			if(responseDeclaration != null && responseDeclaration.getCorrectResponse() != null) {
+				CorrectResponse correctResponse = responseDeclaration.getCorrectResponse();
 				extractIdentifiersFromCorrectResponse(correctResponse, correctAnswers);
 			}
 		}
diff --git a/src/main/java/org/olat/ims/qti21/model/xml/interactions/KPrimAssessmentItemBuilder.java b/src/main/java/org/olat/ims/qti21/model/xml/interactions/KPrimAssessmentItemBuilder.java
index 3bea3fdadb3eebe91f4ce703d8c3aabd437b295b..d1939050c91f4e95ed9631d61f14b05e75a1c63e 100644
--- a/src/main/java/org/olat/ims/qti21/model/xml/interactions/KPrimAssessmentItemBuilder.java
+++ b/src/main/java/org/olat/ims/qti21/model/xml/interactions/KPrimAssessmentItemBuilder.java
@@ -128,8 +128,8 @@ public class KPrimAssessmentItemBuilder extends AssessmentItemBuilder {
 	@Override
 	public void extract() {
 		super.extract();
-		extractCorrectResponse();
 		extractMatchInteraction();
+		extractCorrectResponse();
 		
 		if(getMinScoreBuilder() == null) {
 			setMinScore(0.0d);
@@ -141,11 +141,12 @@ public class KPrimAssessmentItemBuilder extends AssessmentItemBuilder {
 	
 	private void extractCorrectResponse() {
 		associations = new HashMap<>();
-		
-		List<ResponseDeclaration> responseDeclarations = assessmentItem.getResponseDeclarations();
-		if(responseDeclarations.size() == 1) {
-			CorrectResponse correctResponse = responseDeclarations.get(0).getCorrectResponse();
-			if(correctResponse != null) {
+	
+		if(matchInteraction != null) {
+			ResponseDeclaration responseDeclaration = assessmentItem
+					.getResponseDeclaration(matchInteraction.getResponseIdentifier());
+			if(responseDeclaration != null && responseDeclaration.getCorrectResponse() != null) {
+				CorrectResponse correctResponse = responseDeclaration.getCorrectResponse();
 				List<FieldValue> values = correctResponse.getFieldValues();
 				for(FieldValue value:values) {
 					SingleValue sValue = value.getSingleValue();
diff --git a/src/main/java/org/olat/ims/qti21/model/xml/interactions/MatchAssessmentItemBuilder.java b/src/main/java/org/olat/ims/qti21/model/xml/interactions/MatchAssessmentItemBuilder.java
index 3f883bcee1d200cce455e66da65e1c312bb49a43..f72052fc2b50056368213677ee72ffaa486021aa 100644
--- a/src/main/java/org/olat/ims/qti21/model/xml/interactions/MatchAssessmentItemBuilder.java
+++ b/src/main/java/org/olat/ims/qti21/model/xml/interactions/MatchAssessmentItemBuilder.java
@@ -129,8 +129,8 @@ public class MatchAssessmentItemBuilder extends AssessmentItemBuilder {
 	@Override
 	public void extract() {
 		super.extract();
-		extractCorrectResponse();
 		extractMatchInteraction();
+		extractCorrectResponse();
 		extractScoreEvaluationMode();
 		extractSingleChoice();
 		
@@ -169,11 +169,13 @@ public class MatchAssessmentItemBuilder extends AssessmentItemBuilder {
 	
 	private void extractCorrectResponse() {
 		associations = new HashMap<>();
-		
-		List<ResponseDeclaration> responseDeclarations = assessmentItem.getResponseDeclarations();
-		if(responseDeclarations.size() == 1) {
-			CorrectResponse correctResponse = responseDeclarations.get(0).getCorrectResponse();
-			if(correctResponse != null) {
+
+		if(matchInteraction != null) {
+			ResponseDeclaration responseDeclaration = assessmentItem
+					.getResponseDeclaration(matchInteraction.getResponseIdentifier());
+			
+			if(responseDeclaration != null && responseDeclaration.getCorrectResponse() != null) {
+				CorrectResponse correctResponse = responseDeclaration.getCorrectResponse();
 				List<FieldValue> values = correctResponse.getFieldValues();
 				for(FieldValue value:values) {
 					SingleValue sValue = value.getSingleValue();
diff --git a/src/main/java/org/olat/ims/qti21/model/xml/interactions/MultipleChoiceAssessmentItemBuilder.java b/src/main/java/org/olat/ims/qti21/model/xml/interactions/MultipleChoiceAssessmentItemBuilder.java
index 4815455713a37a9edd3f217c8857ef2348e63ea8..1e85868e0cf9748bbe581ec4c99150865f07af76 100644
--- a/src/main/java/org/olat/ims/qti21/model/xml/interactions/MultipleChoiceAssessmentItemBuilder.java
+++ b/src/main/java/org/olat/ims/qti21/model/xml/interactions/MultipleChoiceAssessmentItemBuilder.java
@@ -124,10 +124,11 @@ public class MultipleChoiceAssessmentItemBuilder extends SimpleChoiceAssessmentI
 		
 		correctAnswers = new ArrayList<>(5);
 		
-		List<ResponseDeclaration> responseDeclarations = assessmentItem.getResponseDeclarations();
-		if(responseDeclarations.size() == 1) {
-			CorrectResponse correctResponse = responseDeclarations.get(0).getCorrectResponse();
-			if(correctResponse != null) {
+		if(choiceInteraction != null) {
+			ResponseDeclaration responseDeclaration = assessmentItem
+					.getResponseDeclaration(choiceInteraction.getResponseIdentifier());
+			if(responseDeclaration != null && responseDeclaration.getCorrectResponse() != null) {
+				CorrectResponse correctResponse = responseDeclaration.getCorrectResponse();
 				Value value = FieldValue.computeValue(Cardinality.MULTIPLE, correctResponse.getFieldValues());
 				if(value instanceof MultipleValue) {
 					MultipleValue multiValue = (MultipleValue)value;
diff --git a/src/main/java/org/olat/ims/qti21/model/xml/interactions/SingleChoiceAssessmentItemBuilder.java b/src/main/java/org/olat/ims/qti21/model/xml/interactions/SingleChoiceAssessmentItemBuilder.java
index 181e51a75425cbde973bea9e0dcf9d1542baccc3..959cfc9ca6c25316973dda6b83feebe0f480b3d9 100644
--- a/src/main/java/org/olat/ims/qti21/model/xml/interactions/SingleChoiceAssessmentItemBuilder.java
+++ b/src/main/java/org/olat/ims/qti21/model/xml/interactions/SingleChoiceAssessmentItemBuilder.java
@@ -114,15 +114,13 @@ public class SingleChoiceAssessmentItemBuilder extends SimpleChoiceAssessmentIte
 		
 		if(choiceInteraction != null) {
 			ResponseDeclaration responseDeclaration = assessmentItem.getResponseDeclaration(choiceInteraction.getResponseIdentifier());
-			if(responseDeclaration != null) {
+			if(responseDeclaration != null && responseDeclaration.getCorrectResponse() != null) {
 				CorrectResponse correctResponse = responseDeclaration.getCorrectResponse();
-				if(correctResponse != null) {
-					List<FieldValue> values = correctResponse.getFieldValues();
-					Value value = FieldValue.computeValue(Cardinality.SINGLE, values);
-					if(value instanceof IdentifierValue) {
-						IdentifierValue identifierValue = (IdentifierValue)value;
-						correctAnswer = identifierValue.identifierValue();
-					}
+				List<FieldValue> values = correctResponse.getFieldValues();
+				Value value = FieldValue.computeValue(Cardinality.SINGLE, values);
+				if(value instanceof IdentifierValue) {
+					IdentifierValue identifierValue = (IdentifierValue)value;
+					correctAnswer = identifierValue.identifierValue();
 				}
 			}
 		}
diff --git a/src/main/java/org/olat/ims/qti21/pool/QTI12To21Converter.java b/src/main/java/org/olat/ims/qti21/pool/QTI12To21Converter.java
index b1f219519a4cfb95e740795b9388b10c64a24e83..d0591ad2e73892c28326f932546a2933ac1c9e1f 100644
--- a/src/main/java/org/olat/ims/qti21/pool/QTI12To21Converter.java
+++ b/src/main/java/org/olat/ims/qti21/pool/QTI12To21Converter.java
@@ -35,14 +35,17 @@ import java.util.Set;
 import org.apache.commons.lang.StringEscapeUtils;
 import org.cyberneko.html.parsers.SAXParser;
 import org.olat.core.CoreSpringFactory;
+import org.olat.core.gui.translator.Translator;
 import org.olat.core.helpers.Settings;
 import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 import org.olat.core.util.FileUtils;
 import org.olat.core.util.StringHelper;
+import org.olat.core.util.Util;
 import org.olat.core.util.vfs.VFSContainer;
 import org.olat.core.util.vfs.VFSItem;
 import org.olat.core.util.vfs.VFSLeaf;
+import org.olat.ims.qti.QTIModule;
 import org.olat.ims.qti.editor.QTIEditHelper;
 import org.olat.ims.qti.editor.QTIEditorPackage;
 import org.olat.ims.qti.editor.beecom.objects.Assessment;
@@ -604,6 +607,8 @@ public class QTI12To21Converter {
 		String hintText = question.getHintText();
 		if(StringHelper.containsNonWhitespace(hintText)) {
 			ModalFeedbackBuilder hint = itemBuilder.createHint();
+			Translator translator = Util.createPackageTranslator(QTIModule.class, locale);
+			hint.setTitle(translator.translate("render.hint"));
 			hint.setText(hintText);
 		}
 		
diff --git a/src/main/java/org/olat/modules/portfolio/ui/PageListDataModel.java b/src/main/java/org/olat/modules/portfolio/ui/PageListDataModel.java
index 94981638d628980e9f64f12c18bb0ddb34b9ab23..dd9221783887a09e6bc88ae9d6df0af3b61b7b83 100644
--- a/src/main/java/org/olat/modules/portfolio/ui/PageListDataModel.java
+++ b/src/main/java/org/olat/modules/portfolio/ui/PageListDataModel.java
@@ -89,7 +89,7 @@ public class PageListDataModel extends DefaultFlexiTableDataModel<PortfolioEleme
 				row.setNewEntry(false);
 			}
 			if(row.isAssignmentToInstantiate()) {
-				if(previousRow.isSection()) {
+				if(previousRow != null && previousRow.isSection()) {
 					previousRow.setSectionWithAssignmentToInstantiate(true);
 				}
 			}