diff --git a/src/main/java/org/olat/course/nodes/iq/QTI21AssessmentRunController.java b/src/main/java/org/olat/course/nodes/iq/QTI21AssessmentRunController.java
index d6b0534c3b1487ccb47f0e09f10662ba961d8485..b46cea2ceeb8a3e77d5ef347ef31e51dcfbbbd45 100644
--- a/src/main/java/org/olat/course/nodes/iq/QTI21AssessmentRunController.java
+++ b/src/main/java/org/olat/course/nodes/iq/QTI21AssessmentRunController.java
@@ -42,7 +42,9 @@ import org.olat.core.gui.control.generic.iframe.IFrameDisplayController;
 import org.olat.core.gui.media.MediaResource;
 import org.olat.core.gui.media.NotFoundMediaResource;
 import org.olat.core.gui.translator.Translator;
+import org.olat.core.id.Identity;
 import org.olat.core.id.OLATResourceable;
+import org.olat.core.id.UserConstants;
 import org.olat.core.logging.activity.ThreadLocalUserActivityLogger;
 import org.olat.core.util.Formatter;
 import org.olat.core.util.StringHelper;
@@ -785,7 +787,8 @@ public class QTI21AssessmentRunController extends BasicController implements Gen
 			CourseEnvironment courseEnv, CourseNode courseNode, RepositoryEntry testEntry, Date timestamp, Locale locale)  {
 		MailBundle bundle = new MailBundle();
 		bundle.setToId(candidateSession.getIdentity());
-		String fullname = CoreSpringFactory.getImpl(UserManager.class).getUserDisplayName(candidateSession.getIdentity());
+		Identity assessedIdentity = candidateSession.getIdentity();
+		String fullname = CoreSpringFactory.getImpl(UserManager.class).getUserDisplayName(assessedIdentity);
 		Date assessedDate = candidateSession.getFinishTime() == null ? timestamp : candidateSession.getFinishTime();
 
 		String[] args = new String[] {
@@ -796,7 +799,12 @@ public class QTI21AssessmentRunController extends BasicController implements Gen
 				testEntry.getDisplayname(),						// {4}
 				fullname,										// {5}
 				Formatter.getInstance(locale)
-					.formatDateAndTime(assessedDate) 			// {6}
+					.formatDateAndTime(assessedDate), 			// {6}
+				assessedIdentity.getName(),											// {7}
+				assessedIdentity.getUser()
+					.getProperty(UserConstants.INSTITUTIONALUSERIDENTIFIER, locale),	// {8}
+				assessedIdentity.getUser()
+					.getProperty(UserConstants.INSTITUTIONALNAME, locale),			// {9}
 		};
 
 		Translator translator = Util.createPackageTranslator(QTI21AssessmentRunController.class, locale);
diff --git a/src/main/java/org/olat/ims/qti21/QTI21DeliveryOptions.java b/src/main/java/org/olat/ims/qti21/QTI21DeliveryOptions.java
index 745c9dde45c684c5b4be500da0a582659c5eb791..c7b5e0e969f3e34a38cc701da39b3bae6ea2ec63 100644
--- a/src/main/java/org/olat/ims/qti21/QTI21DeliveryOptions.java
+++ b/src/main/java/org/olat/ims/qti21/QTI21DeliveryOptions.java
@@ -227,7 +227,7 @@ public class QTI21DeliveryOptions {
 		defaultSettings.displayScoreProgress = false;
 		defaultSettings.displayQuestionProgress = false;
 		defaultSettings.hideFeedbacks = false;
-		defaultSettings.hideLms = false;
+		defaultSettings.hideLms = true;
 		defaultSettings.showMenu = true;
 		defaultSettings.showTitles = true;
 		defaultSettings.personalNotes = false;
diff --git a/src/main/java/org/olat/ims/qti21/ui/AssessmentEntryOutcomesListener.java b/src/main/java/org/olat/ims/qti21/ui/AssessmentEntryOutcomesListener.java
index a8077ea5be0e9d226c2500b1099159311c14914d..f9c3c3bfc4d2ff3b81f77cde717a17ff3c4bf1a4 100644
--- a/src/main/java/org/olat/ims/qti21/ui/AssessmentEntryOutcomesListener.java
+++ b/src/main/java/org/olat/ims/qti21/ui/AssessmentEntryOutcomesListener.java
@@ -26,6 +26,8 @@ import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.olat.core.CoreSpringFactory;
 import org.olat.core.gui.translator.Translator;
+import org.olat.core.id.Identity;
+import org.olat.core.id.UserConstants;
 import org.olat.core.logging.activity.ThreadLocalUserActivityLogger;
 import org.olat.core.util.Formatter;
 import org.olat.core.util.Util;
@@ -80,7 +82,8 @@ public class AssessmentEntryOutcomesListener implements OutcomesListener {
 			DigitalSignatureOptions options, Date timestamp, Locale locale) {
 		MailBundle bundle = new MailBundle();
 		bundle.setToId(candidateSession.getIdentity());
-		String fullname = CoreSpringFactory.getImpl(UserManager.class).getUserDisplayName(candidateSession.getIdentity());
+		Identity assessedIdentity = candidateSession.getIdentity();
+		String fullname = CoreSpringFactory.getImpl(UserManager.class).getUserDisplayName(assessedIdentity);
 		Date assessedDate = candidateSession.getFinishTime() == null ? timestamp : candidateSession.getFinishTime();
 
 		
@@ -93,7 +96,12 @@ public class AssessmentEntryOutcomesListener implements OutcomesListener {
 				testEntry.getDisplayname(),	// {4}
 				fullname,					// {5}
 				Formatter.getInstance(locale)
-					.formatDateAndTime(assessedDate) // {6}
+					.formatDateAndTime(assessedDate), 								// {6}
+				assessedIdentity.getName(),											// {7}
+				assessedIdentity.getUser()
+					.getProperty(UserConstants.INSTITUTIONALUSERIDENTIFIER, locale),	// {8}
+				assessedIdentity.getUser()
+					.getProperty(UserConstants.INSTITUTIONALNAME, locale),			// {9}
 		};
 
 		String subject = translator.translate("digital.signature.mail.subject", args);
diff --git a/src/main/java/org/olat/modules/taxonomy/manager/TaxonomyDAO.java b/src/main/java/org/olat/modules/taxonomy/manager/TaxonomyDAO.java
index 8b53c14013cb58ff02fef0bb4208679fe7103b49..52c8e88be75762e6d0a15ecdc5927824e4b0e50e 100644
--- a/src/main/java/org/olat/modules/taxonomy/manager/TaxonomyDAO.java
+++ b/src/main/java/org/olat/modules/taxonomy/manager/TaxonomyDAO.java
@@ -136,8 +136,7 @@ public class TaxonomyDAO implements InitializingBean{
 		File directory = new File(storage, type);
 		directory.mkdirs();
 		Path relativePath = rootDirectory.toPath().relativize(directory.toPath());
-		String relativePathString = relativePath.toString();
-		return relativePathString;
+		return relativePath.toString();
 	}
 	
 	public VFSContainer getDocumentsLibrary(Taxonomy taxonomy) {
diff --git a/src/main/java/org/olat/modules/taxonomy/manager/TaxonomyServiceImpl.java b/src/main/java/org/olat/modules/taxonomy/manager/TaxonomyServiceImpl.java
index 624cd9be6da723f14294c7e5ccfe9b1d81ba44e1..ec293aed0ac7ffbac2e882dbf374bb6ecbe60ae1 100644
--- a/src/main/java/org/olat/modules/taxonomy/manager/TaxonomyServiceImpl.java
+++ b/src/main/java/org/olat/modules/taxonomy/manager/TaxonomyServiceImpl.java
@@ -21,11 +21,13 @@ package org.olat.modules.taxonomy.manager;
 
 import java.util.Date;
 import java.util.List;
+import java.util.UUID;
 
 import org.olat.basesecurity.IdentityRef;
 import org.olat.core.id.Identity;
 import org.olat.core.util.StringHelper;
 import org.olat.core.util.vfs.VFSContainer;
+import org.olat.core.util.vfs.VFSItem;
 import org.olat.core.util.vfs.VFSManager;
 import org.olat.modules.taxonomy.Taxonomy;
 import org.olat.modules.taxonomy.TaxonomyCompetence;
@@ -160,12 +162,23 @@ public class TaxonomyServiceImpl implements TaxonomyService {
 			merge(reloadedTaxonomyLevel, reloadedMergeTo);
 		} else {
 			VFSContainer library = taxonomyLevelDao.getDocumentsLibrary(reloadedTaxonomyLevel);
-			Taxonomy taxonomy = reloadedTaxonomyLevel.getTaxonomy();
-			VFSContainer lostAndFound = taxonomyDao.getLostAndFoundDirectoryLibrary(taxonomy);
-			String dir = StringHelper.transformDisplayNameToFileSystemName(reloadedTaxonomyLevel.getIdentifier());
-			dir += "_" + taxonomyLevel.getKey();
-			VFSContainer lastStorage = lostAndFound.createChildContainer(dir);
-			VFSManager.copyContent(library, lastStorage);
+			if(library != null) {
+				Taxonomy taxonomy = reloadedTaxonomyLevel.getTaxonomy();
+				VFSContainer lostAndFound = taxonomyDao.getLostAndFoundDirectoryLibrary(taxonomy);
+				String dir = StringHelper.transformDisplayNameToFileSystemName(reloadedTaxonomyLevel.getIdentifier());
+				dir += "_" + taxonomyLevel.getKey();
+				VFSContainer lastStorage = lostAndFound.createChildContainer(dir);
+				if(lastStorage == null) {
+					VFSItem storageItem = lostAndFound.resolve(dir);
+					if(storageItem instanceof VFSContainer) {
+						lastStorage = (VFSContainer)storageItem;
+					} else {
+						lastStorage = lostAndFound.createChildContainer(UUID.randomUUID().toString());
+					}
+				}
+				
+				VFSManager.copyContent(library, lastStorage);
+			}
 			//delete the competences
 			taxonomyCompetenceDao.deleteCompetences(taxonomyLevel);
 			//questions
diff --git a/src/main/java/org/olat/modules/taxonomy/ui/TaxonomyLevelOverviewController.java b/src/main/java/org/olat/modules/taxonomy/ui/TaxonomyLevelOverviewController.java
index 2abbda811b173d599a3fd9b753c4109427958ebe..65b98b210d8c0abe8ec8555faecd983452887995 100644
--- a/src/main/java/org/olat/modules/taxonomy/ui/TaxonomyLevelOverviewController.java
+++ b/src/main/java/org/olat/modules/taxonomy/ui/TaxonomyLevelOverviewController.java
@@ -213,13 +213,15 @@ public class TaxonomyLevelOverviewController extends BasicController implements
 			showWarning("warning.atleastone.level");
 			return;
 		}
-		
+
+		taxonomyLevel = taxonomyService.getTaxonomyLevel(taxonomyLevel);
 		Taxonomy taxonomy = taxonomyLevel.getTaxonomy();
-		confirmDeleteCtrl = new DeleteTaxonomyLevelController(ureq, getWindowControl(), null, taxonomy);
+		List<TaxonomyLevel> levelToDelete = Collections.singletonList(taxonomyLevel);
+		confirmDeleteCtrl = new DeleteTaxonomyLevelController(ureq, getWindowControl(), levelToDelete, taxonomy);
 		listenTo(confirmDeleteCtrl);
 
 		String title = translate("confirmation.delete.level.title");
-		cmc = new CloseableModalController(getWindowControl(), "close", moveLevelCtrl.getInitialComponent(), true, title);
+		cmc = new CloseableModalController(getWindowControl(), "close", confirmDeleteCtrl.getInitialComponent(), true, title);
 		listenTo(cmc);
 		cmc.activate();
 	}