diff --git a/src/main/java/org/olat/core/util/filter/impl/HtmlFilter.java b/src/main/java/org/olat/core/util/filter/impl/HtmlFilter.java
index 3efef4f1645a8fff835636bcddea189d4e4f32c1..1ce347a55ab940796ca23a497f013b842e5cad70 100644
--- a/src/main/java/org/olat/core/util/filter/impl/HtmlFilter.java
+++ b/src/main/java/org/olat/core/util/filter/impl/HtmlFilter.java
@@ -81,7 +81,7 @@ public class HtmlFilter implements Filter {
 		if (in == null) return null;
 		try {
 			HtmlParser parser = new HtmlParser(XmlViolationPolicy.ALTER_INFOSET);
-			HtmlHandler contentHandler = new HtmlHandler((int)(1000 * 0.66f), false);
+			HtmlHandler contentHandler = new HtmlHandler(8096, false);
 			parser.setContentHandler(contentHandler);
 			parser.parse(new InputSource(in));
 			return contentHandler.getContent();
diff --git a/src/main/java/org/olat/dispatcher/AuthenticatedDispatcher.java b/src/main/java/org/olat/dispatcher/AuthenticatedDispatcher.java
index c59c1c0e1d5c0f7996e3159102f7e90e41d42ede..3dfad765e6cd3e2f7deaa08372d5e4de383e4c36 100644
--- a/src/main/java/org/olat/dispatcher/AuthenticatedDispatcher.java
+++ b/src/main/java/org/olat/dispatcher/AuthenticatedDispatcher.java
@@ -227,6 +227,13 @@ public class AuthenticatedDispatcher implements Dispatcher {
 			log.error("Unsupported encoding", e);
 		}
 		
+		if(restPart == null) {
+			return null;
+		}
+		int index = restPart.indexOf(";jsessionid=");
+		if(index >= 0) {
+			restPart = restPart.substring(0, index);
+		}
 		if(restPart.startsWith("repo/go")) {
 			return convertJumpInURL(ureq);
 		}
diff --git a/src/main/java/org/olat/modules/quality/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/quality/ui/_i18n/LocalStrings_de.properties
index 1f7bfee15e299469fc902928c05145bdfcdb8ef8..d7c5f38dd2ce30205bbb2957276d68abb1777aba 100644
--- a/src/main/java/org/olat/modules/quality/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/modules/quality/ui/_i18n/LocalStrings_de.properties
@@ -74,7 +74,7 @@ data.collection.topic.repository=Kurs
 data.collection.topic.repository.name=Kurs
 data.collection.topic.repository.none=Kein Kurs ausgew\u00E4lt
 data.collection.topic.repository.select=Select
-data.collection.topic.title=Beurteilungsgsgenstand
+data.collection.topic.title=Beurteilungsgegenstand
 data.collection.topic.type=Gegenstandsart
 data.collection.topic.type.select=Gegenstandsart
 data.collections=Datenerhebungen
@@ -112,7 +112,7 @@ executor.participation.status.ready=Bereit
 executor.participation.taxonomy.level=Taxonomieebene
 executor.participation.title=$\:data.collection.title
 executor.participation.topic=$\:data.collection.topic
-executor.participation.topic.title=Beurteilungsgsgenstand
+executor.participation.topic.title=Beurteilungsgegenstand
 executor.participation.topic.type=$\:data.collection.topic.type
 goto.analysis.help=\u00D6ffnen Sie das Analyse-Werkzeug, um die Antworten der Datenerhebungen zu filtern, zu visualisieren und zu analysieren oder \u00F6ffnen Sie eine vordefinierte Ansicht.
 goto.analysis.link=Analyse-Werkzeug \u00F6ffnen
diff --git a/src/main/java/org/olat/search/service/indexer/FolderIndexerWorker.java b/src/main/java/org/olat/search/service/indexer/FolderIndexerWorker.java
index bac90bfba6ff48271fd66aa1fe393c796fb68d91..dcd5fea8c617e47122084cccd1ae6a302929bdef 100644
--- a/src/main/java/org/olat/search/service/indexer/FolderIndexerWorker.java
+++ b/src/main/java/org/olat/search/service/indexer/FolderIndexerWorker.java
@@ -29,10 +29,10 @@ package org.olat.search.service.indexer;
 import java.io.IOException;
 import java.util.concurrent.Callable;
 
+import org.apache.logging.log4j.Logger;
 import org.apache.lucene.document.Document;
 import org.olat.core.CoreSpringFactory;
 import org.olat.core.commons.persistence.DBFactory;
-import org.apache.logging.log4j.Logger;
 import org.olat.core.logging.Tracing;
 import org.olat.core.util.vfs.VFSContainer;
 import org.olat.core.util.vfs.VFSItem;
@@ -86,27 +86,28 @@ public class FolderIndexerWorker implements Callable<Boolean> {
 	throws IOException, InterruptedException {
 		// Items: List of VFSContainer & VFSLeaf
 		String myFilePath = fPath;
+		boolean debug = log.isDebugEnabled();
 		for (VFSItem item : cont.getItems(new VFSSystemItemFilter())) {
 			if (item instanceof VFSContainer) {
 				// ok it is a container go further
-				if (log.isDebugEnabled()) log.debug(item.getName() + " is a VFSContainer => go further ");
+				if (debug) log.debug("{} is a VFSContainer => go further ", item.getName());
 				if(aRule.allowed(item)) {
 					doIndexVFSContainer(resourceContext, (VFSContainer)item, writer, myFilePath + "/" + ((VFSContainer)item).getName(), aRule);
 				}
 			} else if (item instanceof VFSLeaf) {
 				// ok it is a file => analyse it
-				if (log.isDebugEnabled()) log.debug(item.getName() + " is a VFSLeaf => analyse file");
+				if (debug) log.debug("{} is a VFSLeaf => analyse file", item.getName() );
 				if(aRule.allowed(item)) {
 					doIndexVFSLeaf(resourceContext, (VFSLeaf)item, writer, myFilePath);
 				}
 			} else {
-				log.warn("Unkown element in item-list class=" + item.getClass());
+				log.warn("Unkown element in item-list class={}", item.getClass());
 			}
 		}
 	}
 
 	protected void doIndexVFSLeaf(SearchResourceContext leafResourceContext, VFSLeaf leaf, OlatFullIndexer writer, String fPath) {
-		if (log.isDebugEnabled()) log.debug("Analyse VFSLeaf=" + leaf.getName());
+		if (log.isDebugEnabled()) log.debug("Analyse VFSLeaf={}", leaf.getName());
 		try {
 			if (docFactory.isFileSupported(leaf)) {
 				String myFilePath = fPath + "/" + leaf.getName();
@@ -116,16 +117,16 @@ public class FolderIndexerWorker implements Callable<Boolean> {
 					writer.addDocument(document);
 				}
 			} else {
-				if (log.isDebugEnabled()) log.debug("Documenttype not supported. file=" + leaf.getName());
+				if (log.isDebugEnabled()) log.debug("Documenttype not supported. file={}", leaf.getName());
 			}
 		} catch (DocumentAccessException e) {
-			if (log.isDebugEnabled()) log.debug("Can not access document." + e.getMessage());
+			if (log.isDebugEnabled()) log.debug("Can not access document.", e);
 		} catch (InterruptedException e) {
-			if (log.isDebugEnabled()) log.debug("InterruptedException: Can not index leaf=" + leaf.getName() + ";" + e.getMessage());
+			if (log.isDebugEnabled()) log.debug("InterruptedException: Can not index leaf={}", leaf.getName(), e);
 		} catch (IOException ioEx) {
-			log.warn("IOException: Can not index leaf=" + leaf.getName(), ioEx);
+			log.warn("IOException: Can not index leaf={}", leaf.getName(), ioEx);
 		} catch (Exception ex) {
-			log.warn("Exception: Can not index leaf=" + leaf.getName(), ex);
+			log.warn("Exception: Can not index leaf={}", leaf.getName(), ex);
 		}
 	}
 
diff --git a/src/main/java/org/olat/search/service/indexer/repository/ImsCPRepositoryIndexer.java b/src/main/java/org/olat/search/service/indexer/repository/ImsCPRepositoryIndexer.java
index a6f02ec2edc1499b14cab87862a6ed600928920c..201355be8e172787a8dd296c6556103bd982a36b 100644
--- a/src/main/java/org/olat/search/service/indexer/repository/ImsCPRepositoryIndexer.java
+++ b/src/main/java/org/olat/search/service/indexer/repository/ImsCPRepositoryIndexer.java
@@ -50,7 +50,7 @@ public class ImsCPRepositoryIndexer extends FolderIndexer {
 	private static final Logger log = Tracing.createLoggerFor(ImsCPRepositoryIndexer.class);
 	
 	// Must correspond with LocalString_xx.properties
-	// Do not use '_' because we want to seach for certain documenttype and lucene haev problems with '_' 
+	// Do not use '_' because we want to search for certain document types and lucene has problems with '_' 
 	public static final String TYPE = "type.repository.entry.imscp";
 
 	public static final String ORES_TYPE_CP = ImsCPFileResource.TYPE_NAME;
@@ -59,10 +59,7 @@ public class ImsCPRepositoryIndexer extends FolderIndexer {
 	public String getSupportedTypeName() {	
 		return ORES_TYPE_CP; 
 	}
-	
-	/**
-	 * @see org.olat.repository.handlers.RepositoryHandler#supportsDownload()
-	 */
+
 	@Override
 	public void doIndex(SearchResourceContext resourceContext, Object parentObject, OlatFullIndexer indexWriter) throws IOException,InterruptedException  {
 		RepositoryEntry repositoryEntry = (RepositoryEntry) parentObject;
diff --git a/src/main/java/org/olat/search/service/indexer/repository/ScormRepositoryIndexer.java b/src/main/java/org/olat/search/service/indexer/repository/ScormRepositoryIndexer.java
index c5ec9503fd17066c309581ce9d728d84c7a733f2..aefd0ce3b09425a1698527de15984de7fb367596 100644
--- a/src/main/java/org/olat/search/service/indexer/repository/ScormRepositoryIndexer.java
+++ b/src/main/java/org/olat/search/service/indexer/repository/ScormRepositoryIndexer.java
@@ -21,7 +21,6 @@ package org.olat.search.service.indexer.repository;
 
 import java.io.File;
 import java.io.IOException;
-import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashSet;
 import java.util.List;
@@ -59,41 +58,26 @@ public class ScormRepositoryIndexer extends FolderIndexer {
 
 	private static final Logger log = Tracing.createLoggerFor(ScormRepositoryIndexer.class);
 	
-	public static Set<String> stopWords = new HashSet<>();
+	private static final Set<String> stopWords = new HashSet<>();
 	static {
 		stopWords.add("LOMv1.0");
 		stopWords.add("yes");
 		stopWords.add("NA");
 	}
-	public static final List<String> forbiddenExtensions = new ArrayList<>();
-	static {
-		forbiddenExtensions.add("LOMv1.0");
-		forbiddenExtensions.add(".xsd");
-		forbiddenExtensions.add(".js");
-	}
-	public static final Set<String> forbiddenFiles = new HashSet<>();
-	static {
-		forbiddenFiles.add("imsmanifest.xml");
-	}
-	
-	
+
 	public static final String TYPE = "type.repository.entry.scorm";
 	public static final String ORES_TYPE_SCORM = ScormCPFileResource.TYPE_NAME;
 	
 	public ScormRepositoryIndexer() {
 		// Repository types
 	}
-	
-	/**
-	 * 
-	 */
+
+	@Override
 	public String getSupportedTypeName() {	
 		return ORES_TYPE_SCORM; 
 	}
 	
-	/**
-	 * @see org.olat.repository.handlers.RepositoryHandler#supportsDownload()
-	 */
+	@Override
 	public void doIndex(SearchResourceContext resourceContext, Object parentObject, OlatFullIndexer indexWriter)
 	throws IOException,InterruptedException  {
 		if (log.isDebugEnabled()) log.debug("Index Scorm package...");
@@ -123,7 +107,7 @@ public class ScormRepositoryIndexer extends FolderIndexer {
 	private Document createManifestDocument(VFSLeaf fManifest, Element rootElement, SearchResourceContext resourceContext) {
 		IMSMetadataDocument document = new IMSMetadataDocument();
 		document.setResourceUrl(resourceContext.getResourceUrl());
-		if (log.isDebugEnabled()) log.debug("MM: URL=" + document.getResourceUrl());
+		if (log.isDebugEnabled()) log.debug("MM: URL={}", document.getResourceUrl());
 		document.setLastChange(new Date(fManifest.getLastModified()));
 		document.setDocumentType(resourceContext.getDocumentType());
 		if (StringHelper.containsNonWhitespace(resourceContext.getTitle())) {
@@ -134,8 +118,6 @@ public class ScormRepositoryIndexer extends FolderIndexer {
 		document.setParentContextType(resourceContext.getParentContextType());
 		document.setParentContextName(resourceContext.getParentContextName());
 	
-		
-		
 		StringBuilder sb = new StringBuilder();
 		collectLangString(sb, rootElement);
 		document.setContent(sb.toString());
@@ -157,21 +139,14 @@ public class ScormRepositoryIndexer extends FolderIndexer {
 		}
 	}
 	
-	public class ScormFileAccess implements FolderIndexerAccess {
-		
+	private static class ScormFileAccess implements FolderIndexerAccess {
 		@Override
 		public boolean allowed(VFSItem item) {
-			String name = item.getName();
-			if(forbiddenFiles.contains(name)) {
-				return false;
-			}
-			
-			for(String forbiddenExtension:forbiddenExtensions) {
-				if(name.endsWith(forbiddenExtension)) {
-					return false;
-				}
+			String name = item.getName().toLowerCase();
+			if(item instanceof VFSContainer) {
+				return !name.equals("template");
 			}
-			return true;
+			return name.endsWith(".htm") || name.endsWith(".html");
 		}
 	}
 }
diff --git a/src/main/java/org/olat/search/service/indexer/repository/course/ScormCourseNodeIndexer.java b/src/main/java/org/olat/search/service/indexer/repository/course/ScormCourseNodeIndexer.java
index 9a8bbffd92ffd34b7fb61b2d6fb072ebb2fece5e..dc188f6f05af9d1de6951f27fd8db28680146573 100644
--- a/src/main/java/org/olat/search/service/indexer/repository/course/ScormCourseNodeIndexer.java
+++ b/src/main/java/org/olat/search/service/indexer/repository/course/ScormCourseNodeIndexer.java
@@ -43,8 +43,8 @@ import org.olat.search.service.indexer.repository.ScormRepositoryIndexer;
  * @author srosse, stephane.rosse@frentix.com
  */
 public class ScormCourseNodeIndexer extends ScormRepositoryIndexer implements CourseNodeIndexer {
-	public final static String NODE_TYPE = "type.course.node.scorm";
-	private final static String SUPPORTED_TYPE_NAME = "org.olat.course.nodes.ScormCourseNode";
+	public static final String NODE_TYPE = "type.course.node.scorm";
+	private static final String SUPPORTED_TYPE_NAME = "org.olat.course.nodes.ScormCourseNode";
 
 	@Override
 	public void doIndex(SearchResourceContext repositoryResourceContext, ICourse course, CourseNode courseNode, OlatFullIndexer indexWriter)
diff --git a/src/test/java/org/olat/selenium/page/LoginPage.java b/src/test/java/org/olat/selenium/page/LoginPage.java
index e9b0b648275ad37bbbaad63a24d9451eaa85ada2..960059dbb66d78037de12a26123371cf9fcfe9e5 100644
--- a/src/test/java/org/olat/selenium/page/LoginPage.java
+++ b/src/test/java/org/olat/selenium/page/LoginPage.java
@@ -78,11 +78,7 @@ public class LoginPage {
 	}
 	
 	public void assertLoggedIn(UserVO user) {
-		WebElement username = browser.findElement(usernameFooterBy);
-		Assert.assertNotNull(username);
-		Assert.assertTrue(username.isDisplayed());
-		String name = username.getText();
-		Assert.assertTrue(name.contains(user.getLastName()));
+		assertLoggedInByLastName(user.getLastName());
 	}
 	
 	public void assertLoggedInByLastName(String lastName) {