diff --git a/src/main/java/org/olat/ims/qti21/model/xml/AssessmentItemBuilder.java b/src/main/java/org/olat/ims/qti21/model/xml/AssessmentItemBuilder.java
index f38682ddddf98522b8a86c80272a6a62e571e7f7..5b8d8b0585a89390b72350a423a38e628df31dcc 100644
--- a/src/main/java/org/olat/ims/qti21/model/xml/AssessmentItemBuilder.java
+++ b/src/main/java/org/olat/ims/qti21/model/xml/AssessmentItemBuilder.java
@@ -22,6 +22,7 @@ package org.olat.ims.qti21.model.xml;
 import static org.olat.ims.qti21.QTI21Constants.MAXSCORE_IDENTIFIER;
 import static org.olat.ims.qti21.QTI21Constants.MINSCORE_IDENTIFIER;
 
+import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -30,6 +31,7 @@ import javax.xml.transform.stream.StreamResult;
 import org.olat.core.gui.render.StringOutput;
 import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
+import org.olat.core.util.FileUtils;
 import org.olat.ims.qti21.QTI21Constants;
 import org.olat.ims.qti21.model.QTI21QuestionType;
 import org.olat.ims.qti21.model.xml.ModalFeedbackBuilder.ModalFeedbackType;
@@ -343,6 +345,23 @@ public abstract class AssessmentItemBuilder {
 		return interactionNames;
 	}
 	
+	/**
+	 * 
+	 * @param uploadedFilename The uploaded filename
+	 * @param currentFilename The current filename
+	 * @param directory The directory where the file will be saved
+	 * @return A proposition of unique filename
+	 */
+	public String checkFilename(String uploadedFilename, String currentFilename, File directory) {
+		if(uploadedFilename == null) return null;
+
+		if(!uploadedFilename.equals(currentFilename)) {
+			File file = new File(directory, uploadedFilename);
+			uploadedFilename = FileUtils.rename(file);
+		}
+		return uploadedFilename;
+	}
+	
 	protected final void serializeJqtiObject(QtiNode block, StringOutput sb) {
 		final XsltSerializationOptions xsltSerializationOptions = new XsltSerializationOptions();
         xsltSerializationOptions.setIndenting(false);
diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/DrawingEditorController.java b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/DrawingEditorController.java
index 2edf5f4f3c0be35fd5cbd7a82d069b5866922dd0..337753345f3d11b10c786f86d9714cd31baed413 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/DrawingEditorController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/DrawingEditorController.java
@@ -217,6 +217,9 @@ public class DrawingEditorController extends FormBasicController {
 				backgroundEl.validate(status);
 				if(status.isEmpty()) {
 					flc.setDirty(true);
+					String uniqueFilename = itemBuilder
+							.checkFilename(backgroundEl.getUploadFileName(), itemBuilder.getBackground(), itemFile.getParentFile());
+					backgroundEl.setUploadFileName(uniqueFilename);
 					backgroundImage = backgroundEl.moveUploadFileTo(itemFile.getParentFile());
 					backgroundEl.setInitialFile(backgroundImage);
 				}
diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/HotspotEditorController.java b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/HotspotEditorController.java
index 7db80fd6ccc34344caa519e34107c61761292478..446c02193beaadcbc45fc33b53d7c9de38a6cdc6 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/HotspotEditorController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/HotspotEditorController.java
@@ -362,6 +362,9 @@ public class HotspotEditorController extends FormBasicController {
 				backgroundEl.validate(status);
 				if(status.isEmpty()) {
 					flc.setDirty(true);
+					String uniqueFilename = itemBuilder
+							.checkFilename(backgroundEl.getUploadFileName(), itemBuilder.getBackground(), itemFile.getParentFile());
+					backgroundEl.setUploadFileName(uniqueFilename);
 					backgroundImage = backgroundEl.moveUploadFileTo(itemFile.getParentFile());
 					Size size = imageService.getSize(new LocalFileImpl(backgroundImage), null);
 					optimizeResizeEl(size, true);