diff --git a/src/main/java/org/olat/ims/qti21/manager/QTI21ServiceImpl.java b/src/main/java/org/olat/ims/qti21/manager/QTI21ServiceImpl.java
index 6e26d3848c88c1e307d6c9bbf76f689c90246fdf..49bd29f58a029cb0d391afec67c2c666618796ae 100644
--- a/src/main/java/org/olat/ims/qti21/manager/QTI21ServiceImpl.java
+++ b/src/main/java/org/olat/ims/qti21/manager/QTI21ServiceImpl.java
@@ -864,7 +864,8 @@ public class QTI21ServiceImpl implements QTI21Service, UserDataDeletable, Initia
         		extension = "";
         	}
         	String date = testSessionDao.formatDate(new Date());
-        	String datedFilename = filename + date + extension;
+        	String datedFilename = FileUtils.normalizeFilename(filename) + "_" + date + extension;
+        	
         	//make sure we don't overwrite an existing file
 			File submittedFile = new File(submissionDir, datedFilename);
 			String renamedFile = FileUtils.rename(submittedFile);
@@ -898,7 +899,7 @@ public class QTI21ServiceImpl implements QTI21Service, UserDataDeletable, Initia
         		extension = "";
         	}
         	String date = testSessionDao.formatDate(new Date());
-        	String datedFilename = filename + date + extension;
+        	String datedFilename = FileUtils.normalizeFilename(filename) + "_" + date + extension;
         	//make sure we don't overwrite an existing file
 			File submittedFile = new File(submissionDir, datedFilename);
 			String renamedFile = FileUtils.rename(submittedFile);