diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/MultipleChoiceEditorController.java b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/MultipleChoiceEditorController.java
index 35af34e86e3c4ea411fd3d38b2ee5058fe9372f9..dd4494a895e507fbc4d96ea1128010a008400cd7 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/MultipleChoiceEditorController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/MultipleChoiceEditorController.java
@@ -351,11 +351,13 @@ public class MultipleChoiceEditorController extends FormBasicController {
 		newChoice.getFlowStatics().add(firstChoiceText);
 		
 		wrapAnswer(ureq, newChoice);
+		recalculateUpDownLinks();
 		flc.setDirty(true);
 	}
 	
 	private void doRemoveSimpleChoice(SimpleChoiceWrapper choiceWrapper) {
 		choiceWrappers.remove(choiceWrapper);
+		recalculateUpDownLinks();
 		flc.setDirty(true);
 	}
 	
@@ -383,8 +385,8 @@ public class MultipleChoiceEditorController extends FormBasicController {
 		int numOfChoices = choiceWrappers.size();
 		for(int i=0; i<numOfChoices; i++) {
 			SimpleChoiceWrapper choiceWrapper = choiceWrappers.get(i);
-			choiceWrapper.getUp().setEnabled(i != 0);
-			choiceWrapper.getDown().setEnabled(i < (numOfChoices - 1));
+			choiceWrapper.getUp().setEnabled(i != 0 && !restrictedEdit && !readOnly);
+			choiceWrapper.getDown().setEnabled(i < (numOfChoices - 1) && !restrictedEdit && !readOnly);
 		}
 	}
 
diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/SingleChoiceEditorController.java b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/SingleChoiceEditorController.java
index 04cf8247194e4edfea3463a148107545f78d23bf..de0b24ea14bdf49707d83edbdd53ea37d3879c58 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/SingleChoiceEditorController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/SingleChoiceEditorController.java
@@ -335,11 +335,13 @@ public class SingleChoiceEditorController extends FormBasicController {
 		ChoiceInteraction interaction = itemBuilder.getChoiceInteraction();
 		SimpleChoice newChoice = AssessmentItemFactory.createSimpleChoice(interaction, translate("new.answer"), "sc");
 		wrapAnswer(ureq, newChoice);
+		recalculateUpDownLinks();
 		flc.setDirty(true);
 	}
 	
 	private void doRemoveSimpleChoice(SimpleChoiceWrapper choiceWrapper) {
 		choiceWrappers.remove(choiceWrapper);
+		recalculateUpDownLinks();
 		flc.setDirty(true);
 	}
 	
@@ -367,8 +369,8 @@ public class SingleChoiceEditorController extends FormBasicController {
 		int numOfChoices = choiceWrappers.size();
 		for(int i=0; i<numOfChoices; i++) {
 			SimpleChoiceWrapper choiceWrapper = choiceWrappers.get(i);
-			choiceWrapper.getUp().setEnabled(i != 0 && !restrictedEdit);
-			choiceWrapper.getDown().setEnabled(i < (numOfChoices - 1) && !restrictedEdit);
+			choiceWrapper.getUp().setEnabled(i != 0 && !restrictedEdit && !readOnly);
+			choiceWrapper.getDown().setEnabled(i < (numOfChoices - 1) && !restrictedEdit && !readOnly);
 		}
 	}