diff --git a/src/main/java/org/olat/course/nodes/iq/IQEditController.java b/src/main/java/org/olat/course/nodes/iq/IQEditController.java
index a779d37b4492c7b8eb0f0200fc9b51d7808082f9..e85f1c4590cc76d5595b9c42afba30d418ffdfa9 100644
--- a/src/main/java/org/olat/course/nodes/iq/IQEditController.java
+++ b/src/main/java/org/olat/course/nodes/iq/IQEditController.java
@@ -83,6 +83,7 @@ import org.olat.course.tree.CourseInternalLinkTreeModel;
 import org.olat.fileresource.FileResourceManager;
 import org.olat.ims.qti.QTIResult;
 import org.olat.ims.qti.QTIResultManager;
+import org.olat.ims.qti.QTIResultSet;
 import org.olat.ims.qti.editor.QTIEditorPackage;
 import org.olat.ims.qti.editor.QTIEditorPackageImpl;
 import org.olat.ims.qti.editor.beecom.objects.Assessment;
@@ -334,8 +335,6 @@ public class IQEditController extends ActivateableTabbableDefaultController impl
 		myContent = createVelocityContainer("edit");		
 		chooseTestButton = LinkFactory.createButtonSmall("command.chooseRepFile", myContent, this);
 		chooseTestButton.setElementCssClass("o_sel_test_choose_repofile");
-		changeTestButton = LinkFactory.createButtonSmall("command.changeRepFile", myContent, this);
-		changeTestButton.setElementCssClass("o_sel_test_change_repofile");
 		
 		// fetch repository entry
 		RepositoryEntry re = null;
@@ -370,6 +369,14 @@ public class IQEditController extends ActivateableTabbableDefaultController impl
 			previewLink.setTitle(getTranslator().translate("command.preview"));
 		}
 
+		if (re == null || !isRestricted(re)) {
+			changeTestButton = LinkFactory.createButtonSmall("command.changeRepFile", myContent, this);
+			changeTestButton.setElementCssClass("o_sel_test_change_repofile");
+		} else if (ureq.getUserSession().getRoles().isOLATAdmin()) {
+			changeTestButton = LinkFactory.createButtonSmall("command.changeRepFile", myContent, this);
+			changeTestButton.setElementCssClass("o_sel_test_change_repofile o_button_dirty");
+		}
+
 		String disclaimer = (String) moduleConfiguration.get(CONFIG_KEY_DISCLAIMER);
 		//allowRelativeLinks  = courseNode.getModuleConfiguration().getBooleanEntry(CONFIG_KEY_ALLOW_RELATIVE_LINKS);
 
@@ -440,6 +447,30 @@ public class IQEditController extends ActivateableTabbableDefaultController impl
 				|| RepositoryManager.getInstance().isInstitutionalRessourceManagerFor(identity, roles, re));
 	}
 
+	/**
+	 * Checks if the QTI Test has already test results
+	 * @param repository entry
+	 * @return
+	 */
+	private boolean isRestricted(RepositoryEntry re) {
+		OLATResource res = re.getOlatResource();
+		
+		if (OnyxModule.isOnyxTest(res)) {
+			QTIResultManager qrm = QTIResultManager.getInstance();
+			List<QTIResultSet> resultSets = qrm.getResultSets(course.getResourceableId(),
+					courseNode.getIdent(),
+					re.getKey(),
+					null);
+			return (resultSets.size() > 0);
+		} else {
+			String repositorySoftKey = (String) courseNode.getModuleConfiguration().get(IQEditController.CONFIG_KEY_REPOSITORY_SOFTKEY);
+			Long repKey = RepositoryManager.getInstance().lookupRepositoryEntryBySoftkey(repositorySoftKey, true).getKey();
+			boolean restrictedEdit = false;
+			restrictedEdit = QTIResultManager.getInstance().countResults(course.getResourceableId(), courseNode.getIdent(), repKey) > 0;
+			return restrictedEdit;
+		}
+	}		
+
 	/**
 	 * @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest,
 	 *      org.olat.core.gui.components.Component, org.olat.core.gui.control.Event)
diff --git a/src/main/java/org/olat/course/nodes/iq/_content/edit.html b/src/main/java/org/olat/course/nodes/iq/_content/edit.html
index 6a996d87f780e68aecf2846829c2ffb8789f36f4..748290260c279f428ecf634267c0bc06b72315cc 100644
--- a/src/main/java/org/olat/course/nodes/iq/_content/edit.html
+++ b/src/main/java/org/olat/course/nodes/iq/_content/edit.html
@@ -22,7 +22,9 @@
 		</div>
 		<div class="form-group">
 			<div class="col-sm-offset-3 col-sm-9">
-			$r.render("command.changeRepFile")
+			#if($r.available("command.changeRepFile"))
+				$r.render("command.changeRepFile")
+			#end
 			#if($r.available("command.editRepFile"))
 				$r.render("command.editRepFile")
 			#end