diff --git a/src/main/java/org/olat/ims/qti/resultexport/QTI12ResultsExportMediaResource.java b/src/main/java/org/olat/ims/qti/resultexport/QTI12ResultsExportMediaResource.java
index 30f78b55ad4d1694bd8e1f2b25680938216cebbe..be1d59a8f818769bc932549a046857934dd7bc11 100644
--- a/src/main/java/org/olat/ims/qti/resultexport/QTI12ResultsExportMediaResource.java
+++ b/src/main/java/org/olat/ims/qti/resultexport/QTI12ResultsExportMediaResource.java
@@ -30,9 +30,12 @@ import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.SimpleFileVisitor;
 import java.nio.file.attribute.BasicFileAttributes;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Comparator;
+import java.util.Date;
 import java.util.List;
+import java.util.TimeZone;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipOutputStream;
 
@@ -68,6 +71,10 @@ public class QTI12ResultsExportMediaResource implements MediaResource {
 	
 	private static final String DATA = "export/userdata/";
 	private static final String SEP = File.separator;
+	private static final SimpleDateFormat displayDateFormat = new SimpleDateFormat("HH:mm:ss");
+	static {
+		displayDateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
+	}
 	
 	private VelocityHelper velocityHelper;
 	
@@ -162,15 +169,15 @@ public class QTI12ResultsExportMediaResource implements MediaResource {
 				for (QTIResultSet qtiResultSet : resultSets) {
 					
 					Long assessmentID = qtiResultSet.getAssessmentID();
-					String idPath = idDir + assessmentID + SEP;
+					String idPath = idDir + translator.translate("table.user.attempt") + (resultSets.indexOf(qtiResultSet)+1) + SEP;
 					createZipDirectory(zout, idPath);
 					
-					String linkToHTML = createHTMLfromQTIResultSet(idPath, zout, ureq, identity, qtiResultSet);
+					String linkToHTML = createHTMLfromQTIResultSet(idPath, idDir, zout, ureq, identity, qtiResultSet);
 					
 					// content of result table
 					ResultDetail resultDetail = new ResultDetail(createLink(String.valueOf(assessmentID), linkToHTML, true),
-							qtiResultSet.getCreationDate(), qtiResultSet.getDuration(), qtiResultSet.getScore(),
-							createPassedIcons(qtiResultSet.getIsPassed()), linkToHTML);
+							qtiResultSet.getCreationDate(), displayDateFormat.format(new Date(qtiResultSet.getDuration())),
+							qtiResultSet.getScore(), createPassedIcons(qtiResultSet.getIsPassed()), linkToHTML);
 					
 					assessments.add(resultDetail);
 					
@@ -242,7 +249,7 @@ public class QTI12ResultsExportMediaResource implements MediaResource {
 		if (assessments.size() > 0) ctx.put("hasResults", Boolean.TRUE);
 		
 		String template = FileUtils.load(QTI12ResultsExportMediaResource.class
-				.getResourceAsStream("_content/qti12listing.html"), "utf-8");
+				.getResourceAsStream("_content/qtiListing.html"), "utf-8");
 
 		return velocityHelper.evaluateVTL(template, ctx);
 	}
@@ -261,7 +268,7 @@ public class QTI12ResultsExportMediaResource implements MediaResource {
 		ctx.put("assessedMembers", assessedMembers);
 
 		String template = FileUtils.load(QTI12ResultsExportMediaResource.class
-				.getResourceAsStream("_content/qti12userlisting.html"), "utf-8");
+				.getResourceAsStream("_content/qtiUserlisting.html"), "utf-8");
 
 		return velocityHelper.evaluateVTL(template, ctx);
 	}
@@ -276,7 +283,7 @@ public class QTI12ResultsExportMediaResource implements MediaResource {
 		return fDoc;
 	}
 	
-	private String createHTMLfromQTIResultSet(String idPath, ZipOutputStream zout, UserRequest ureq,
+	private String createHTMLfromQTIResultSet(String idPath, String idDir, ZipOutputStream zout, UserRequest ureq,
 			Identity assessedIdentity, QTIResultSet resultSet) throws IOException {
 
 		Document doc = FilePersister.retreiveResultsReporting(assessedIdentity,
@@ -294,7 +301,7 @@ public class QTI12ResultsExportMediaResource implements MediaResource {
 		convertToZipEntry(zout, html, resultsHTML);		
 		convertToZipEntry(zout, xml, resourceXML);
 		
-		return resultSet.getAssessmentID() + "/" + resultSet.getAssessmentID() + ".html";
+		return idPath.replace(idDir, "") + resultSet.getAssessmentID() + ".html";
 	}
 	
 	private void fsToZip(ZipOutputStream zout, final Path sourceFolder, final String targetPath) throws IOException {
diff --git a/src/main/java/org/olat/ims/qti/resultexport/QTI21ResultsExportMediaResource.java b/src/main/java/org/olat/ims/qti/resultexport/QTI21ResultsExportMediaResource.java
index 13ed2713bf56b5290bf78117f6db36d446973540..0f6377c740160c198d70386e4b3355c63dc76786 100644
--- a/src/main/java/org/olat/ims/qti/resultexport/QTI21ResultsExportMediaResource.java
+++ b/src/main/java/org/olat/ims/qti/resultexport/QTI21ResultsExportMediaResource.java
@@ -30,9 +30,12 @@ import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.SimpleFileVisitor;
 import java.nio.file.attribute.BasicFileAttributes;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Comparator;
+import java.util.Date;
 import java.util.List;
+import java.util.TimeZone;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipOutputStream;
 
@@ -78,6 +81,10 @@ public class QTI21ResultsExportMediaResource implements MediaResource {
 	
 	private static final String DATA = "export/userdata/";
 	private static final String SEP = File.separator;
+	private static SimpleDateFormat displayDateFormat = new SimpleDateFormat("HH:mm:ss");
+	static {
+		displayDateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
+	}
 	
 	private VelocityHelper velocityHelper;
 	
@@ -93,7 +100,7 @@ public class QTI21ResultsExportMediaResource implements MediaResource {
 
 	public QTI21ResultsExportMediaResource(CourseEnvironment courseEnv, List<Identity> identities, 
 			QTICourseNode courseNode, QTI21Service qtiService, UserRequest ureq) {
-		this.title = "qti12export";	
+		this.title = "qti21export";	
 		this.courseNode = courseNode;
 		this.identities = identities;
 		this.velocityHelper = VelocityHelper.getInstance();
@@ -167,14 +174,14 @@ public class QTI21ResultsExportMediaResource implements MediaResource {
 				for (AssessmentTestSession session : sessions) {
 					
 					Long assessmentID = session.getKey();
-					String idPath = idDir + assessmentID + SEP;
+					String idPath = idDir + translator.translate("table.user.attempt") + (sessions.indexOf(session)+1) + SEP;
 					createZipDirectory(zout, idPath);
 					
 					// content of result table
 					ResultDetail resultDetail = new ResultDetail(assessmentID.toString(), session.getCreationDate(),
-							session.getDuration(), session.getScore().floatValue(), 
+							displayDateFormat.format(new Date(session.getDuration())), session.getScore().floatValue(), 
 							createPassedIcons(session.getPassed() == null ? true : session.getPassed()),
-							assessmentID + SEP + assessmentID + ".html");
+							idPath.replace(idDir, "") + assessmentID + ".html");
 					
 					assessments.add(resultDetail);
 					//WindowControlMocker needed because this is not a controller
@@ -279,7 +286,7 @@ public class QTI21ResultsExportMediaResource implements MediaResource {
 		if (assessments.size() > 0) ctx.put("hasResults", Boolean.TRUE);
 		
 		String template = FileUtils.load(QTI21ResultsExportMediaResource.class
-				.getResourceAsStream("_content/qti12listing.html"), "utf-8");
+				.getResourceAsStream("_content/qtiListing.html"), "utf-8");
 
 		return velocityHelper.evaluateVTL(template, ctx);
 	}
@@ -298,7 +305,7 @@ public class QTI21ResultsExportMediaResource implements MediaResource {
 		ctx.put("assessedMembers", assessedMembers);
 
 		String template = FileUtils.load(QTI21ResultsExportMediaResource.class
-				.getResourceAsStream("_content/qti12userlisting.html"), "utf-8");
+				.getResourceAsStream("_content/qtiUserlisting.html"), "utf-8");
 
 		return velocityHelper.evaluateVTL(template, ctx);
 	}
diff --git a/src/main/java/org/olat/ims/qti/resultexport/ResultDetail.java b/src/main/java/org/olat/ims/qti/resultexport/ResultDetail.java
index dff8f7a96d1502e3da59bbe02e11f5c5986a475a..39489ee0ed6030659b645c08528b25e2e8d8c216 100644
--- a/src/main/java/org/olat/ims/qti/resultexport/ResultDetail.java
+++ b/src/main/java/org/olat/ims/qti/resultexport/ResultDetail.java
@@ -26,7 +26,7 @@ public class ResultDetail {
 	private String assessmentID;
 	private Date assessmentDate;
 	private String dateCaption;
-	private long duration;
+	private String duration;
 	private String durationCaption;
 	private float score;
 	private String scoreCaption;
@@ -36,7 +36,7 @@ public class ResultDetail {
 	public ResultDetail() {
 	}
 
-	public ResultDetail(String assessmentID, Date assessmentDate, long duration, float score, String passed, String link) {
+	public ResultDetail(String assessmentID, Date assessmentDate, String duration, float score, String passed, String link) {
 		super();
 		this.assessmentID = assessmentID;
 		this.assessmentDate = assessmentDate;
@@ -47,16 +47,6 @@ public class ResultDetail {
 	}
 
 
-
-	public ResultDetail(String assessmentID, String dateCaption, String durationCaption, String scoreCaption, String passed) {
-		super();
-		this.assessmentID = assessmentID;
-		this.dateCaption = dateCaption;
-		this.durationCaption = durationCaption;
-		this.scoreCaption = scoreCaption;
-		this.passed = passed;
-	}
-	
 	
 
 	public String getLink() {
@@ -107,11 +97,11 @@ public class ResultDetail {
 		this.assessmentDate = assessmentDate;
 	}
 
-	public long getDuration() {
+	public String getDuration() {
 		return duration;
 	}
 
-	public void setDuration(long duration) {
+	public void setDuration(String duration) {
 		this.duration = duration;
 	}
 
diff --git a/src/main/java/org/olat/ims/qti/resultexport/_content/qti12listing.html b/src/main/java/org/olat/ims/qti/resultexport/_content/qtiListing.html
similarity index 100%
rename from src/main/java/org/olat/ims/qti/resultexport/_content/qti12listing.html
rename to src/main/java/org/olat/ims/qti/resultexport/_content/qtiListing.html
diff --git a/src/main/java/org/olat/ims/qti/resultexport/_content/qti12userlisting.html b/src/main/java/org/olat/ims/qti/resultexport/_content/qtiUserlisting.html
similarity index 100%
rename from src/main/java/org/olat/ims/qti/resultexport/_content/qti12userlisting.html
rename to src/main/java/org/olat/ims/qti/resultexport/_content/qtiUserlisting.html
diff --git a/src/main/java/org/olat/ims/qti/resultexport/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/ims/qti/resultexport/_i18n/LocalStrings_de.properties
index 79b1b41f0a5b1cb33bd18d4b1491434115908fc4..eb7cee84b4e3cbc0b2c53f267be6794d889a4579 100644
--- a/src/main/java/org/olat/ims/qti/resultexport/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/ims/qti/resultexport/_i18n/LocalStrings_de.properties
@@ -15,5 +15,6 @@ table.all.username=Benutzername
 table.all.firstname=Vorname
 table.all.lastname=Nachname
 table.all.tries=Versuche
+table.user.attempt=Versuch_
 table.all.passed=Bestanden
 error.no.assessed.users=Keine Bewertungen vorhanden
\ No newline at end of file
diff --git a/src/main/java/org/olat/ims/qti/resultexport/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/ims/qti/resultexport/_i18n/LocalStrings_en.properties
index 1c230640b19eca494d04cf3482dff3c6afa0f2aa..d5def8631670d49c563cb1cbf61c5393dbc29a97 100644
--- a/src/main/java/org/olat/ims/qti/resultexport/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/ims/qti/resultexport/_i18n/LocalStrings_en.properties
@@ -14,6 +14,7 @@ table.all.id=ID
 table.all.username=Username
 table.all.firstname=Firstname
 table.all.lastname=Lastname
-table.all.tries=Tries
+table.all.tries=Attempts
+table.user.attempt=Attempt_
 table.all.passed=Passed
 error.no.assessed.users=No Assessments available
\ No newline at end of file