diff --git a/src/main/java/org/olat/collaboration/CollaborationTools.java b/src/main/java/org/olat/collaboration/CollaborationTools.java
index 71ab79f992be22c13917c478b68811b772b04d12..8991b42a74a545b3a57ed16bed226cbecd417e3b 100644
--- a/src/main/java/org/olat/collaboration/CollaborationTools.java
+++ b/src/main/java/org/olat/collaboration/CollaborationTools.java
@@ -562,7 +562,7 @@ public class CollaborationTools implements Serializable {
 	}
 	
 	public Controller createOpenMeetingsController(final UserRequest ureq, WindowControl wControl, final BusinessGroup group, boolean admin) {
-		OpenMeetingsRunController runController = new OpenMeetingsRunController(ureq, wControl, group, null, null, null, admin, admin);
+		OpenMeetingsRunController runController = new OpenMeetingsRunController(ureq, wControl, group, null, null, admin, admin);
 		return runController;
 	}
 
diff --git a/src/main/java/org/olat/core/commons/modules/bc/meta/MetaInfoFormController.java b/src/main/java/org/olat/core/commons/modules/bc/meta/MetaInfoFormController.java
index 221a7e70927b74111d72bd8fc50421eb3d67696a..a447a6b3d7aba527bd3f32479d50e0211eb6b838 100644
--- a/src/main/java/org/olat/core/commons/modules/bc/meta/MetaInfoFormController.java
+++ b/src/main/java/org/olat/core/commons/modules/bc/meta/MetaInfoFormController.java
@@ -29,6 +29,7 @@ import java.util.Date;
 import java.util.HashSet;
 import java.util.Set;
 
+import org.olat.core.CoreSpringFactory;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.form.flexible.FormItem;
 import org.olat.core.gui.components.form.flexible.FormItemContainer;
@@ -45,13 +46,13 @@ import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.generic.folder.FolderHelper;
 import org.olat.core.id.Identity;
-import org.olat.core.id.UserConstants;
 import org.olat.core.util.FileUtils;
 import org.olat.core.util.StringHelper;
 import org.olat.core.util.vfs.OlatRelPathImpl;
 import org.olat.core.util.vfs.VFSConstants;
 import org.olat.core.util.vfs.VFSItem;
 import org.olat.core.util.vfs.VFSLeaf;
+import org.olat.user.UserManager;
 
 /**
  * This is the metadata flexiform controller with or without upload capability.
@@ -70,7 +71,8 @@ public class MetaInfoFormController extends FormBasicController {
 	private SingleSelection locked;
 	// Fields needed for upload dialog
 	private boolean isSubform;
-	Set<FormItem> metaFields;
+	private Set<FormItem> metaFields;
+	private final UserManager userManager;
 
 	/**
 	 * Use this controller for editing meta data of an existing file.
@@ -84,6 +86,7 @@ public class MetaInfoFormController extends FormBasicController {
 		this.item = item;
 		// load the metainfo
 		meta = MetaInfoFactory.createMetaInfoFor((OlatRelPathImpl) item);
+		userManager = CoreSpringFactory.getImpl(UserManager.class);
 		initForm(ureq);
 	}
 
@@ -97,6 +100,7 @@ public class MetaInfoFormController extends FormBasicController {
 	 */
 	public MetaInfoFormController(UserRequest ureq, WindowControl control, Form parentForm) {
 		super(ureq, control, FormBasicController.LAYOUT_DEFAULT, null, parentForm);
+		userManager = CoreSpringFactory.getImpl(UserManager.class);
 		this.isSubform = true;
 		initForm(ureq);
 	}
@@ -114,6 +118,7 @@ public class MetaInfoFormController extends FormBasicController {
 		this.isSubform = true;
 		this.item = vfsItem;
 		this.meta = MetaInfoFactory.createMetaInfoFor((OlatRelPathImpl)vfsItem);
+		userManager = CoreSpringFactory.getImpl(UserManager.class);
 		initForm(ureq);
 	}
 	
@@ -153,7 +158,7 @@ public class MetaInfoFormController extends FormBasicController {
 			// show metadata
 			// and hide link
 			setMetaFieldsVisible(true);
-			this.flc.setDirty(true);
+			flc.setDirty(true);
 			moreMetaDataLink.setVisible(false);
 		}
 	}
@@ -177,27 +182,28 @@ public class MetaInfoFormController extends FormBasicController {
 		}
 
 		// title
-		String t = StringHelper.escapeHtml(meta != null ? meta.getTitle() : null);
-		title = uifactory.addTextElement("title", "mf.title", -1, t, formLayout);
+		String titleVal = StringHelper.escapeHtml(meta != null ? meta.getTitle() : null);
+		title = uifactory.addTextElement("title", "mf.title", -1, titleVal, formLayout);
 
 		// comment/description
-		comment = uifactory.addTextAreaElement("comment", "mf.comment", -1, 3, 1, true, (meta != null ? meta.getComment() : null), formLayout);
+		String commentVal =  StringHelper.xssScan(meta != null ? meta.getComment() : null);
+		comment = uifactory.addTextAreaElement("comment", "mf.comment", -1, 3, 1, true, commentVal, formLayout);
 
 		// creator
-		String c = StringHelper.escapeHtml(meta != null ? meta.getCreator() : null);
-		creator = uifactory.addTextElement("creator", "mf.creator", -1, c, formLayout);
+		String creatorVal = StringHelper.escapeHtml(meta != null ? meta.getCreator() : null);
+		creator = uifactory.addTextElement("creator", "mf.creator", -1, creatorVal, formLayout);
 
 		// publisher
-		String p = StringHelper.escapeHtml(meta != null ? meta.getPublisher() : null);
-		publisher = uifactory.addTextElement("publisher", "mf.publisher", -1, p, formLayout);
+		String publisherVal = StringHelper.escapeHtml(meta != null ? meta.getPublisher() : null);
+		publisher = uifactory.addTextElement("publisher", "mf.publisher", -1, publisherVal, formLayout);
 
 		// source/origin
-		String s = StringHelper.escapeHtml(meta != null ? meta.getSource() : null);
-		source = uifactory.addTextElement("source", "mf.source", -1, s, formLayout);
+		String sourceVal = StringHelper.escapeHtml(meta != null ? meta.getSource() : null);
+		source = uifactory.addTextElement("source", "mf.source", -1, sourceVal, formLayout);
 
 		// city
-		String ci = StringHelper.escapeHtml(meta != null ? meta.getCity() : null);
-		city = uifactory.addTextElement("city", "mf.city", -1, ci, formLayout);
+		String cityVal = StringHelper.escapeHtml(meta != null ? meta.getCity() : null);
+		city = uifactory.addTextElement("city", "mf.city", -1, cityVal, formLayout);
 
 		// publish date
 		FormLayoutContainer publicationDate = FormLayoutContainer.createHorizontalFormLayout("publicationDateLayout", getTranslator());
@@ -205,22 +211,25 @@ public class MetaInfoFormController extends FormBasicController {
 		formLayout.add(publicationDate);
 
 		String[] pubDate = (meta != null ? meta.getPublicationDate() : new String[] { "", "" });
-		publicationMonth = uifactory.addTextElement("publicationMonth", "mf.month", 2, pubDate[1], publicationDate);
+		publicationMonth = uifactory.addTextElement("publicationMonth", "mf.month", 2, StringHelper.escapeHtml(pubDate[1]), publicationDate);
 		publicationMonth.setMaxLength(2);
 		publicationMonth.setDisplaySize(2);
 
-		publicationYear = uifactory.addTextElement("publicationYear", "mf.year", 4, pubDate[0], publicationDate);
+		publicationYear = uifactory.addTextElement("publicationYear", "mf.year", 4, StringHelper.escapeHtml(pubDate[0]), publicationDate);
 		publicationYear.setMaxLength(4);
 		publicationYear.setDisplaySize(4);
 
 		// number of pages
-		pages = uifactory.addTextElement("pages", "mf.pages", -1, (meta != null ? meta.getPages() : null), formLayout);
+		String pageVal = StringHelper.escapeHtml(meta != null ? meta.getPages() : null);
+		pages = uifactory.addTextElement("pages", "mf.pages", -1, pageVal, formLayout);
 
 		// language
-		language = uifactory.addTextElement("language", "mf.language", -1, (meta != null ? meta.getLanguage() : null), formLayout);
+		String langVal = StringHelper.escapeHtml(meta != null ? meta.getLanguage() : null);
+		language = uifactory.addTextElement("language", "mf.language", -1, langVal, formLayout);
 
 		// url/link
-		url = uifactory.addTextElement("url", "mf.url", -1, (meta != null ? meta.getUrl() : null), formLayout);
+		String urlVal = StringHelper.escapeHtml(meta != null ? meta.getUrl() : null);
+		url = uifactory.addTextElement("url", "mf.url", -1, urlVal, formLayout);
 
 		/* static fields */
 		String sizeText, typeText;
@@ -268,11 +277,11 @@ public class MetaInfoFormController extends FormBasicController {
 				String lockedDetails = "";
 				if(lockedById != null) {
 					Identity lockedIdentity = meta.getLockedByIdentity();
-					String user = lockedIdentity.getUser().getProperty(UserConstants.LASTNAME, ureq.getLocale()) + " " +
-						lockedIdentity.getUser().getProperty(UserConstants.FIRSTNAME, ureq.getLocale());
+					String user = userManager.getUserDisplayName(lockedIdentity);
+					user = StringHelper.escapeHtml(user);
 					String date = "";
 					if (meta.getLockedDate() != null) {
-						date = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, ureq.getLocale()).format(meta.getLockedDate());
+						date = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, getLocale()).format(meta.getLockedDate());
 					}
 					lockedDetails = getTranslator().translate("mf.locked.description", new String[]{user, date});
 				} else {
@@ -286,14 +295,14 @@ public class MetaInfoFormController extends FormBasicController {
 			uifactory.addStaticTextElement("mf.author", author, formLayout);
 
 			// filesize
-			uifactory.addStaticTextElement("mf.size", sizeText, formLayout);
+			uifactory.addStaticTextElement("mf.size", StringHelper.escapeHtml(sizeText), formLayout);
 
 			// last modified date
 			String lastModified = meta == null ? "" : StringHelper.formatLocaleDate(meta.getLastModified(), getLocale());
 			uifactory.addStaticTextElement("mf.lastModified", lastModified, formLayout);
 
 			// file type
-			uifactory.addStaticTextElement("mf.type", typeText, formLayout);
+			uifactory.addStaticTextElement("mf.type", StringHelper.escapeHtml(typeText), formLayout);
 
 			String downloads = meta == null ? "" : String.valueOf(meta.getDownloadCount());
 			uifactory.addStaticTextElement("mf.downloads", downloads, formLayout);
diff --git a/src/main/java/org/olat/course/assessment/EfficiencyStatementController.java b/src/main/java/org/olat/course/assessment/EfficiencyStatementController.java
index 5040a7319d2eac6aa902714786ed6e072fae2283..d491afa5f0d6414bc6a73f5991e88ff4c5f53607 100644
--- a/src/main/java/org/olat/course/assessment/EfficiencyStatementController.java
+++ b/src/main/java/org/olat/course/assessment/EfficiencyStatementController.java
@@ -143,10 +143,10 @@ public class EfficiencyStatementController extends BasicController {
 		setTranslator(UserManager.getInstance().getPropertyHandlerTranslator(getTranslator()));		
 		userDataVC = createVelocityContainer("efficiencystatement");
 		if(efficiencyStatement != null) {
-			userDataVC.contextPut("courseTitle", efficiencyStatement.getCourseTitle());
+			userDataVC.contextPut("courseTitle", StringHelper.escapeHtml(efficiencyStatement.getCourseTitle()));
 			userDataVC.contextPut("date", StringHelper.formatLocaleDateTime(efficiencyStatement.getLastUpdated(), ureq.getLocale()));
 		} else if(courseRepo != null) {
-			userDataVC.contextPut("courseTitle", courseRepo.getDisplayname());
+			userDataVC.contextPut("courseTitle", StringHelper.escapeHtml(courseRepo.getDisplayname()));
 		}
 		
 		if(courseRepoKey != null && links) {
diff --git a/src/main/java/org/olat/course/nodes/OpenMeetingsCourseNode.java b/src/main/java/org/olat/course/nodes/OpenMeetingsCourseNode.java
index 09fd2dad865d50abdcd2d40e7e65aa729bdae9cd..29c4cfec468bc8042695cc60aa7e740a93750a82 100644
--- a/src/main/java/org/olat/course/nodes/OpenMeetingsCourseNode.java
+++ b/src/main/java/org/olat/course/nodes/OpenMeetingsCourseNode.java
@@ -132,8 +132,7 @@ public class OpenMeetingsCourseNode extends AbstractAccessableCourseNode {
 
 		// create run controller
 		OLATResourceable ores = OresHelper.createOLATResourceableInstance(CourseModule.class, resourceId);
-		String courseTitle = userCourseEnv.getCourseEnvironment().getCourseTitle();
-		Controller runCtr = new OpenMeetingsRunController(ureq, wControl, null, ores, getIdent(), courseTitle, admin, moderator);
+		Controller runCtr = new OpenMeetingsRunController(ureq, wControl, null, ores, getIdent(), admin, moderator);
 		Controller controller = TitledWrapperHelper.getWrapper(ureq, wControl, runCtr, this, "o_openmeetings_icon");
 		return new NodeRunConstructionResult(controller);
 	}
@@ -147,7 +146,7 @@ public class OpenMeetingsCourseNode extends AbstractAccessableCourseNode {
 
 	@Override
 	public Controller createPeekViewRunController(UserRequest ureq, WindowControl wControl, UserCourseEnvironment userCourseEnv, NodeEvaluation ne) {
-		return new OpenMeetingsPeekViewController(ureq, wControl, userCourseEnv, getIdent());
+		return new OpenMeetingsPeekViewController(ureq, wControl);
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/course/nodes/feed/FeedPeekviewController.java b/src/main/java/org/olat/course/nodes/feed/FeedPeekviewController.java
index 36648cebf031ee24f0fd55d4f0e52e5ddb86ab91..8e2f8ee999983874c461492ec7e4ed98842f322a 100644
--- a/src/main/java/org/olat/course/nodes/feed/FeedPeekviewController.java
+++ b/src/main/java/org/olat/course/nodes/feed/FeedPeekviewController.java
@@ -33,6 +33,7 @@ import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.controller.BasicController;
 import org.olat.core.util.Formatter;
+import org.olat.core.util.StringHelper;
 import org.olat.modules.webFeed.FeedSecurityCallback;
 import org.olat.modules.webFeed.FeedViewHelper;
 import org.olat.modules.webFeed.managers.FeedManager;
@@ -98,7 +99,7 @@ public class FeedPeekviewController extends BasicController implements Controlle
 				// add link to item
 				// Add link to jump to course node
 				Link nodeLink = LinkFactory.createLink("nodeLink_" + item.getGuid(), peekviewVC, this);
-				nodeLink.setCustomDisplayText(item.getTitle());
+				nodeLink.setCustomDisplayText(StringHelper.escapeHtml(item.getTitle()));
 				nodeLink.setCustomEnabledLinkCSS("b_with_small_icon_left o_feed_item_icon o_gotoNode");
 				nodeLink.setUserObject(item.getGuid());
 			}
@@ -109,8 +110,7 @@ public class FeedPeekviewController extends BasicController implements Controlle
 		allItemsLink.setCustomEnabledLinkCSS("b_float_right");
 		// Add Formatter for proper date formatting
 		peekviewVC.contextPut("formatter", Formatter.getInstance(getLocale()));
-		//
-		this.putInitialPanel(peekviewVC);
+		putInitialPanel(peekviewVC);
 	}
 
 	/**
diff --git a/src/main/java/org/olat/course/nodes/openmeetings/OpenMeetingsEditController.java b/src/main/java/org/olat/course/nodes/openmeetings/OpenMeetingsEditController.java
index d7a26f36b03512ea8b60faf286604acdf3dd2049..d3280d4687bec73a487417e0eb634d38dfaa600a 100644
--- a/src/main/java/org/olat/course/nodes/openmeetings/OpenMeetingsEditController.java
+++ b/src/main/java/org/olat/course/nodes/openmeetings/OpenMeetingsEditController.java
@@ -81,7 +81,7 @@ public class OpenMeetingsEditController extends ActivateableTabbableDefaultContr
 
 		OLATResourceable ores = OresHelper.createOLATResourceableInstance(course.getResourceableTypeName(), course.getResourceableId());
 		OpenMeetingsRoom defaultSettings = getDefaultValues();
-		editForm = new OpenMeetingsEditFormController(ureq, getWindowControl(), ores, courseNode, course.getCourseTitle(), defaultSettings);
+		editForm = new OpenMeetingsEditFormController(ureq, getWindowControl(), ores, courseNode, defaultSettings);
 		listenTo(editForm);
 		editVc.put("editRooms", editForm.getInitialComponent());
 	}
diff --git a/src/main/java/org/olat/course/nodes/openmeetings/OpenMeetingsEditFormController.java b/src/main/java/org/olat/course/nodes/openmeetings/OpenMeetingsEditFormController.java
index 84967b07050c31a4e8be99607020c449f9f3ada3..3d0fcb1f868d45a5ee37ba1c7e358653d5d69185 100644
--- a/src/main/java/org/olat/course/nodes/openmeetings/OpenMeetingsEditFormController.java
+++ b/src/main/java/org/olat/course/nodes/openmeetings/OpenMeetingsEditFormController.java
@@ -35,6 +35,7 @@ import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.generic.closablewrapper.CloseableModalController;
 import org.olat.core.id.OLATResourceable;
+import org.olat.core.util.StringHelper;
 import org.olat.core.util.Util;
 import org.olat.course.nodes.OpenMeetingsCourseNode;
 import org.olat.modules.openmeetings.manager.OpenMeetingsException;
@@ -59,7 +60,6 @@ public class OpenMeetingsEditFormController extends FormBasicController {
 	
 	private final String[] recordingKeys = {"xx"};
 	
-	private String courseTitle;
 	private final OLATResourceable course;
 	private final OpenMeetingsCourseNode courseNode;
 	private final OpenMeetingsManager openMeetingsManager;
@@ -70,12 +70,11 @@ public class OpenMeetingsEditFormController extends FormBasicController {
 	private OpenMeetingsRoom defaultSettings;
 
 	public OpenMeetingsEditFormController(UserRequest ureq, WindowControl wControl, OLATResourceable course,
-			OpenMeetingsCourseNode courseNode, String courseTitle, OpenMeetingsRoom defaultSettings) {
+			OpenMeetingsCourseNode courseNode, OpenMeetingsRoom defaultSettings) {
 		super(ureq, wControl, null, Util.createPackageTranslator(OpenMeetingsRoomEditController.class, ureq.getLocale()));
 		
 		this.course = course;
 		this.courseNode = courseNode;
-		this.courseTitle = courseTitle;
 		this.defaultSettings = defaultSettings;
 		if(defaultSettings != null) {
 			defaultSettings.setName(courseNode.getShortTitle());
@@ -124,7 +123,7 @@ public class OpenMeetingsEditFormController extends FormBasicController {
 	private void updateUI() {
 		boolean hasRoom = room != null;
 		setFormDescription(hasRoom ? null : "create.room.desc");
-		roomNameEl.setValue(hasRoom ? room.getName() : "");
+		roomNameEl.setValue(hasRoom ? StringHelper.escapeHtml(room.getName()) : "");
 		roomNameEl.setVisible(hasRoom);
 		if(hasRoom) {
 			String typeStr = translate(RoomType.getType(room.getType()).i18nKey());
@@ -197,7 +196,7 @@ public class OpenMeetingsEditFormController extends FormBasicController {
 	protected void doEditRoom(UserRequest ureq) {
 		try {
 			cleanupPopups();
-			editController = new OpenMeetingsRoomEditController(ureq, getWindowControl(), null, course, courseNode.getIdent(), courseTitle, defaultSettings,  true);
+			editController = new OpenMeetingsRoomEditController(ureq, getWindowControl(), null, course, courseNode.getIdent(), defaultSettings);
 			listenTo(editController);
 
 			cmc = new CloseableModalController(getWindowControl(), translate("close"), editController.getInitialComponent(), true, translate("edit.room"));
diff --git a/src/main/java/org/olat/course/nodes/openmeetings/OpenMeetingsPeekViewController.java b/src/main/java/org/olat/course/nodes/openmeetings/OpenMeetingsPeekViewController.java
index c20330c5cb5a078c521500babab99aa3314065f1..b4d873cfc2532ebb8bd5edc99d863b2567f952e0 100644
--- a/src/main/java/org/olat/course/nodes/openmeetings/OpenMeetingsPeekViewController.java
+++ b/src/main/java/org/olat/course/nodes/openmeetings/OpenMeetingsPeekViewController.java
@@ -25,7 +25,6 @@ import org.olat.core.gui.components.panel.Panel;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.controller.BasicController;
-import org.olat.course.run.userview.UserCourseEnvironment;
 
 /**
  * 
@@ -39,8 +38,7 @@ import org.olat.course.run.userview.UserCourseEnvironment;
 public class OpenMeetingsPeekViewController extends BasicController {
 
 
-	public OpenMeetingsPeekViewController(UserRequest ureq, WindowControl wControl,
-			UserCourseEnvironment userCourseEnv, String subIdentifier) {
+	public OpenMeetingsPeekViewController(UserRequest ureq, WindowControl wControl) {
 		super(ureq, wControl);
 		
 		Panel emptyPanel = new Panel("empty");
diff --git a/src/main/java/org/olat/course/nodes/st/EditScoreCalculationEasyForm.java b/src/main/java/org/olat/course/nodes/st/EditScoreCalculationEasyForm.java
index a7c71bea70be1baed2c4a084fdcfd21d2acd047e..27bcb8f33fde6f7d98babc1190101811a9977b5e 100644
--- a/src/main/java/org/olat/course/nodes/st/EditScoreCalculationEasyForm.java
+++ b/src/main/java/org/olat/course/nodes/st/EditScoreCalculationEasyForm.java
@@ -131,7 +131,7 @@ public class EditScoreCalculationEasyForm extends FormBasicController {
 		
 		// 1) score configuration
 		if (hasScore.isSelected(0)) {
-			sc.setSumOfScoreNodes(new ArrayList(scoreNodeIdents.getSelectedKeys()));
+			sc.setSumOfScoreNodes(new ArrayList<String>(scoreNodeIdents.getSelectedKeys()));
 		}else {
 			//reset
 			sc.setSumOfScoreNodes(null);
@@ -145,7 +145,7 @@ public class EditScoreCalculationEasyForm extends FormBasicController {
 			sc.setPassedCutValue(passedCutValue.getIntValue());
 		} else if (passedType.getSelectedKey().equals(ScoreCalculator.PASSED_TYPE_INHERIT)) {
 			sc.setPassedType(ScoreCalculator.PASSED_TYPE_INHERIT);
-			sc.setPassedNodes(new ArrayList(passedNodeIdents.getSelectedKeys()));
+			sc.setPassedNodes(new ArrayList<String>(passedNodeIdents.getSelectedKeys()));
 		}
 		
 
@@ -166,8 +166,8 @@ public class EditScoreCalculationEasyForm extends FormBasicController {
 	public List<String> getInvalidNodeDescriptions() {
 		List<String> testElemWithNoResource = new ArrayList<String>();
 		List<String> selectedNodesIds = new ArrayList<String>(scoreNodeIdents.getSelectedKeys());		
-		for (Iterator nodeIter = assessableNodesList.iterator(); nodeIter.hasNext();) {
-			CourseNode node = (CourseNode) nodeIter.next();
+		for (Iterator<CourseNode> nodeIter = assessableNodesList.iterator(); nodeIter.hasNext();) {
+			CourseNode node = nodeIter.next();
 			if (selectedNodesIds.contains(node.getIdent())) {				
 				StatusDescription isConfigValid = node.isConfigValid();
 				if (isConfigValid != null && isConfigValid.isError()) {
diff --git a/src/main/java/org/olat/group/ui/main/EditMembershipController.java b/src/main/java/org/olat/group/ui/main/EditMembershipController.java
index 397479b3ef98d082477e7fae01b384c810652170..f877912a1529a876b8d14ce8466f48527307ea69 100644
--- a/src/main/java/org/olat/group/ui/main/EditMembershipController.java
+++ b/src/main/java/org/olat/group/ui/main/EditMembershipController.java
@@ -46,6 +46,7 @@ import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.id.Identity;
+import org.olat.core.util.StringHelper;
 import org.olat.course.member.PermissionHelper;
 import org.olat.course.member.PermissionHelper.BGPermission;
 import org.olat.course.member.PermissionHelper.RepoPermission;
@@ -217,6 +218,7 @@ public class EditMembershipController extends FormBasicController {
 		if(formLayout instanceof FormLayoutContainer) {
 			FormLayoutContainer layoutCont = (FormLayoutContainer)formLayout;
 			String name = repoEntry == null ? businessGroup.getName() : repoEntry.getDisplayname();
+			name = StringHelper.escapeHtml(name);
 			String title = translate("edit.member.title", new String[]{ name });
 			layoutCont.contextPut("editTitle", title);
 		}
diff --git a/src/main/java/org/olat/instantMessaging/ui/InstantMessagingMainController.java b/src/main/java/org/olat/instantMessaging/ui/InstantMessagingMainController.java
index a7b9a12e8f48045ba40af1b843ad19631d4dd348..505f1bbde0dac992043571669f48253bf32d28c7 100644
--- a/src/main/java/org/olat/instantMessaging/ui/InstantMessagingMainController.java
+++ b/src/main/java/org/olat/instantMessaging/ui/InstantMessagingMainController.java
@@ -419,7 +419,8 @@ public class InstantMessagingMainController extends BasicController implements G
 		Link link = LinkFactory.createCustomLink(buddy.getIdentityKey().toString(), ACTION_MSG, "", Link.NONTRANSLATED, newMsgIcon, this);
 		link.registerForMousePositionEvent(true);
 		link.setCustomEnabledLinkCSS("b_small_icon o_instantmessaging_new_msg_icon");
-		link.setTooltip(translate("im.new.message", new String[]{ buddy.getName() }));
+		String buddyName = StringHelper.escapeHtml(buddy.getName());
+		link.setTooltip(translate("im.new.message", new String[]{ buddyName }));
 		link.setUserObject(buddy);
 		newMsgIcon.put(buddy.getIdentityKey().toString(), link);
 		return link;
diff --git a/src/main/java/org/olat/modules/openmeetings/ui/OpenMeetingsRecordingsController.java b/src/main/java/org/olat/modules/openmeetings/ui/OpenMeetingsRecordingsController.java
index 5f4563ca7a0df4914942cff519099a8acfe361b7..47df9ecc3ef1cd63f9f8c63a5da81234cf3c69aa 100644
--- a/src/main/java/org/olat/modules/openmeetings/ui/OpenMeetingsRecordingsController.java
+++ b/src/main/java/org/olat/modules/openmeetings/ui/OpenMeetingsRecordingsController.java
@@ -135,7 +135,7 @@ public class OpenMeetingsRecordingsController extends BasicController {
 		} else if (source == confirmRemoveRecording) {
 			if (DialogBoxUIFactory.isYesEvent(event)) { // yes case
 				OpenMeetingsRecording recording = (OpenMeetingsRecording)confirmRemoveRecording.getUserObject();
-				doDelete(ureq, recording);
+				doDelete(recording);
 			}
 		}
 	}
@@ -153,7 +153,7 @@ public class OpenMeetingsRecordingsController extends BasicController {
 		cmc.activate();
 	}
 
-	private void doDelete(UserRequest ureq, OpenMeetingsRecording recording) {
+	private void doDelete(OpenMeetingsRecording recording) {
 		openMeetingsManager.deleteRecording(recording);
 		loadModel();
 	}
diff --git a/src/main/java/org/olat/modules/openmeetings/ui/OpenMeetingsRoomEditController.java b/src/main/java/org/olat/modules/openmeetings/ui/OpenMeetingsRoomEditController.java
index c3c06e8a1e707d606b87619d583a0644c74cb433..81a00148c0220042ef3c07fd066f66dacf53158d 100644
--- a/src/main/java/org/olat/modules/openmeetings/ui/OpenMeetingsRoomEditController.java
+++ b/src/main/java/org/olat/modules/openmeetings/ui/OpenMeetingsRoomEditController.java
@@ -73,7 +73,7 @@ public class OpenMeetingsRoomEditController extends FormBasicController {
 	private long[] sizes = {2, 4, 6, 8, 10, 12, 14, 16, 25, 50, 100, 150, 200, 1000};
 
 	public OpenMeetingsRoomEditController(UserRequest ureq, WindowControl wControl, BusinessGroup group, OLATResourceable ores,
-			String subIdentifier, String resourceName, OpenMeetingsRoom defaultSettings, boolean admin) {
+			String subIdentifier, OpenMeetingsRoom defaultSettings) {
 		super(ureq, wControl);
 		
 		this.group = group;
diff --git a/src/main/java/org/olat/modules/openmeetings/ui/OpenMeetingsRunController.java b/src/main/java/org/olat/modules/openmeetings/ui/OpenMeetingsRunController.java
index 2770adabaff1f5a3eed768d665dbebf78d7828f0..4161db188cbd335b9abb580c1c2516cd92005e97 100644
--- a/src/main/java/org/olat/modules/openmeetings/ui/OpenMeetingsRunController.java
+++ b/src/main/java/org/olat/modules/openmeetings/ui/OpenMeetingsRunController.java
@@ -68,7 +68,7 @@ public class OpenMeetingsRunController extends BasicController {
 	private final String subIdentifier;
 
 	public OpenMeetingsRunController(UserRequest ureq, WindowControl wControl, BusinessGroup group, OLATResourceable ores,
-			String subIdentifier, String resourceName, boolean admin, boolean moderator) {
+			String subIdentifier, boolean admin, boolean moderator) {
 		super(ureq, wControl);
 		
 		this.admin = admin;
@@ -170,9 +170,9 @@ public class OpenMeetingsRunController extends BasicController {
 		} else if (source == startGuestLink) {
 			doStartAsGuest(ureq);
 		} else if(source == openLink) {
-			doOpen(ureq);
+			doOpen();
 		} else if(source == closeLink) {
-			doClose(ureq);
+			doClose();
 		} else if(source == recordingLink) {
 			doOpenRecordings(ureq);
 		} else if(source == membersLink) {
@@ -188,7 +188,7 @@ public class OpenMeetingsRunController extends BasicController {
 			if(event == Event.DONE_EVENT) {
 				String firstName = guestController.getFirstName();
 				String lastName = guestController.getLastName();
-				redirectToGuestRoom(ureq, firstName, lastName);
+				redirectToGuestRoom(firstName, lastName);
 			}
 			cmc.deactivate();
 			cleanupPopups();
@@ -224,7 +224,7 @@ public class OpenMeetingsRunController extends BasicController {
 		cmc = null;
 	}
 	
-	private void doOpen(UserRequest ureq) {
+	private void doOpen() {
 		try {
 			room = openMeetingsManager.openRoom(room);
 		} catch (OpenMeetingsException e) {
@@ -233,7 +233,7 @@ public class OpenMeetingsRunController extends BasicController {
 		updateState();
 	}
 	
-	private void doClose(UserRequest ureq) {
+	private void doClose() {
 		try {
 			room = openMeetingsManager.closeRoom(room);
 		} catch (OpenMeetingsException e) {
@@ -269,7 +269,7 @@ public class OpenMeetingsRunController extends BasicController {
 	
 	private void doEdit(UserRequest ureq) {
 		cleanupPopups();
-		editController = new OpenMeetingsRoomEditController(ureq, getWindowControl(), group, ores, subIdentifier, "", null, true);
+		editController = new OpenMeetingsRoomEditController(ureq, getWindowControl(), group, ores, subIdentifier, null);
 		listenTo(editController);
 
 		String edit = translate("edit.room");
@@ -288,7 +288,7 @@ public class OpenMeetingsRunController extends BasicController {
 		cmc.activate();
 	}
 	
-	private void redirectToGuestRoom(UserRequest ureq, String firstName, String lastName) {	
+	private void redirectToGuestRoom(String firstName, String lastName) {	
 		if(room == null && room.getRoomId() <= 0) {
 			showError("room.notfound.error");
 		} else {
diff --git a/src/main/java/org/olat/modules/openmeetings/ui/_content/room.html b/src/main/java/org/olat/modules/openmeetings/ui/_content/room.html
index fb0c65507b294b2d6138f8dc3ec2c1529284d776..16fff6b14ffb28156550233e82a942844c3d5a40 100644
--- a/src/main/java/org/olat/modules/openmeetings/ui/_content/room.html
+++ b/src/main/java/org/olat/modules/openmeetings/ui/_content/room.html
@@ -3,7 +3,7 @@
 #elseif($noroom)
  <div class="b_warning">$r.translate("room.notfound.error")</div>
 #else
-	<h3 class="b_with_small_icon_left o_openmeetings_icon">$roomName</h3>
+	<h3 class="b_with_small_icon_left o_openmeetings_icon">$r.escapeHtml($roomName)</h3>
 	#if($roomComment)
 		<div class="b_note">$roomComment</div>
 	#end
diff --git a/src/main/java/org/olat/modules/webFeed/ui/DisplayFeedUrlController.java b/src/main/java/org/olat/modules/webFeed/ui/DisplayFeedUrlController.java
index 8601d0ffebcd6190290e0f57853034a237f84dbf..a1ed9d5456a0ee53602f2bd254fcbed8ce069ad4 100644
--- a/src/main/java/org/olat/modules/webFeed/ui/DisplayFeedUrlController.java
+++ b/src/main/java/org/olat/modules/webFeed/ui/DisplayFeedUrlController.java
@@ -96,7 +96,7 @@ public class DisplayFeedUrlController extends FormBasicController {
 	 * @see org.olat.modules.webFeed.ui.podcast.FeedFormController#initForm(org.olat.core.gui.components.form.flexible.FormItemContainer,
 	 *      org.olat.core.gui.control.Controller, org.olat.core.gui.UserRequest)
 	 */
-	@SuppressWarnings("unused")
+	@Override
 	protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
 		feedUrl = uifactory.addTextAreaElement("feedUrl", "feed.url.label", 5000, 1, 1, true, helper.getFeedUrl(), this.flc);
 		// no editing. selecting allowed only
diff --git a/src/main/java/org/olat/modules/webFeed/ui/FeedFormController.java b/src/main/java/org/olat/modules/webFeed/ui/FeedFormController.java
index 21305648c39c9de2adb8e117261ac3de4bdd6870..ac8432732c87cc9c9baae2c9c44d8811e7f51bd8 100644
--- a/src/main/java/org/olat/modules/webFeed/ui/FeedFormController.java
+++ b/src/main/java/org/olat/modules/webFeed/ui/FeedFormController.java
@@ -244,8 +244,6 @@ class FeedFormController extends FormBasicController {
 	 *      org.olat.core.gui.control.Controller, org.olat.core.gui.UserRequest)
 	 */
 	@Override
-	// formLayout == this.flc && listener == this !!!
-	@SuppressWarnings("unused")
 	protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
 		this.setFormTitle("feed.edit");
 		// this.setFormContextHelp(packageName, pageName, hoverTextKey);
diff --git a/src/main/java/org/olat/modules/webFeed/ui/blog/CreateBlogController.java b/src/main/java/org/olat/modules/webFeed/ui/blog/CreateBlogController.java
index b4b1a0dab844ba01f3752d3cecbfd9e40bbc2c7a..415df6374c7189017bde7608cd82cc6d62ea66f1 100644
--- a/src/main/java/org/olat/modules/webFeed/ui/blog/CreateBlogController.java
+++ b/src/main/java/org/olat/modules/webFeed/ui/blog/CreateBlogController.java
@@ -77,7 +77,6 @@ public class CreateBlogController extends DefaultController implements IAddContr
 	 *      org.olat.core.gui.control.Event)
 	 */
 	@Override
-	@SuppressWarnings("unused")
 	protected void event(UserRequest ureq, Component source, Event event) {
 	// Nothing to catch
 	}
@@ -85,6 +84,7 @@ public class CreateBlogController extends DefaultController implements IAddContr
 	/**
 	 * @see org.olat.repository.controllers.IAddController#getTransactionComponent()
 	 */
+	@Override
 	public Component getTransactionComponent() {
 		// No additional workflow for feed creation
 		return null;
diff --git a/src/main/java/org/olat/modules/webFeed/ui/podcast/CreatePodcastController.java b/src/main/java/org/olat/modules/webFeed/ui/podcast/CreatePodcastController.java
index f281c26373155b30ff7cd828c6881d5174e5871b..0026f4066235ccef6ced20e9e71bf1305d8b42e6 100644
--- a/src/main/java/org/olat/modules/webFeed/ui/podcast/CreatePodcastController.java
+++ b/src/main/java/org/olat/modules/webFeed/ui/podcast/CreatePodcastController.java
@@ -77,7 +77,6 @@ public class CreatePodcastController extends DefaultController implements IAddCo
 	 *      org.olat.core.gui.control.Event)
 	 */
 	@Override
-	@SuppressWarnings("unused")
 	protected void event(UserRequest ureq, Component source, Event event) {
 	// Nothing to catch
 	}
diff --git a/src/main/java/org/olat/modules/webFeed/ui/podcast/EpisodeFormController.java b/src/main/java/org/olat/modules/webFeed/ui/podcast/EpisodeFormController.java
index 8f2330ed34cdf228607965246bc39214061d0853..83f6b97d3f421656e8fb1c05989121696b50d041 100644
--- a/src/main/java/org/olat/modules/webFeed/ui/podcast/EpisodeFormController.java
+++ b/src/main/java/org/olat/modules/webFeed/ui/podcast/EpisodeFormController.java
@@ -244,7 +244,6 @@ public class EpisodeFormController extends FormBasicController {
 	 *      org.olat.core.gui.control.Controller, org.olat.core.gui.UserRequest)
 	 */
 	@Override
-	@SuppressWarnings("unused")
 	protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
 		this.setFormTitle("feed.edit.item");
 		this.setFormContextHelp(this.getClass().getPackage().getName(), "episode_form_help.html", "chelp.hover.episode");
diff --git a/src/main/java/org/olat/modules/wiki/WikiMainController.java b/src/main/java/org/olat/modules/wiki/WikiMainController.java
index 8a69b3c5217adf2fd82c073a3224b4d337a3a7c3..3236c6ef31e57e7bfdf5c34ff06b7f29bd8c1f34 100644
--- a/src/main/java/org/olat/modules/wiki/WikiMainController.java
+++ b/src/main/java/org/olat/modules/wiki/WikiMainController.java
@@ -62,7 +62,6 @@ import org.olat.core.gui.control.generic.closablewrapper.CloseableModalControlle
 import org.olat.core.gui.control.generic.dtabs.Activateable2;
 import org.olat.core.gui.control.generic.modal.DialogBoxController;
 import org.olat.core.gui.control.generic.modal.DialogBoxUIFactory;
-import org.olat.core.id.Identity;
 import org.olat.core.id.OLATResourceable;
 import org.olat.core.id.context.BusinessControlFactory;
 import org.olat.core.id.context.ContextEntry;
@@ -120,7 +119,7 @@ import org.olat.util.logging.activity.LoggingResourceable;
  */
 public class WikiMainController extends BasicController implements CloneableController, Activateable2 {
 	
-	OLog log = Tracing.createLoggerFor(this.getClass());
+	private static final OLog log = Tracing.createLoggerFor(WikiMainController.class);
 
 	private TabbedPane tabs;
 	private WikiPage selectedPage;
@@ -138,7 +137,6 @@ public class WikiMainController extends BasicController implements CloneableCont
 	private BreadCrumbController breadCrumpCtr;
 	private DialogBoxController removePageDialogCtr, archiveWikiDialogCtr;
 	private List<ChangeInfo> diffs = new ArrayList<ChangeInfo>(2);
-	private Identity ident;
 	private SubscriptionContext subsContext;
 	private LockResult lockEntry;
 	private Link archiveLink, closePreviewButton, deletePageButton, manageMediaButton, toMainPageLink, a2zLink, changesLink, editMenuButton, revertVersionButton;
@@ -177,7 +175,6 @@ public class WikiMainController extends BasicController implements CloneableCont
 		this.ores = ores;
 		this.securityCallback = securityCallback;
 		this.subsContext = securityCallback.getSubscriptionContext();
-		this.ident = ureq.getIdentity();
 		WikiPage page = null;
 		Wiki wiki = getWiki();
 		if(wiki == null) {
@@ -541,7 +538,7 @@ public class WikiMainController extends BasicController implements CloneableCont
 			 * tabbed pane change to edit tab
 			 **********************************************************************/
 			wikiEditForm.resetUpdateComment();
-			editContent.contextPut("mayDeleteArticle", Boolean.valueOf(ident.getKey().equals(Long.valueOf(page.getInitalAuthor() )) || securityCallback.mayEditWikiMenu() ));
+			editContent.contextPut("mayDeleteArticle", Boolean.valueOf(getIdentity().getKey().equals(Long.valueOf(page.getInitalAuthor() )) || securityCallback.mayEditWikiMenu() ));
 			editContent.contextPut("linkList", wiki.getListOfAllPageNames());
 			editContent.contextPut("fileList", wiki.getMediaFileList());
 			// try to edit acquire lock for this page
@@ -800,7 +797,7 @@ public class WikiMainController extends BasicController implements CloneableCont
 		} else if (source == archiveWikiDialogCtr) {
 			if (DialogBoxUIFactory.isOkEvent(event)) {
 				//convert wiki into IMS content package and copy to users home folder
-				WikiToCPExport utils = new WikiToCPExport(ores, ident, getTranslator());
+				WikiToCPExport utils = new WikiToCPExport(ores, getIdentity(), getTranslator());
 				utils.archiveWikiToCP();
 				showInfo("wiki.exported.done.infomessage");
 			}
@@ -862,9 +859,9 @@ public class WikiMainController extends BasicController implements CloneableCont
 
 						editContent.contextPut("isDirty", Boolean.valueOf(false));
 						page.setContent(wikiEditForm.getWikiContent());
-						page.setModifyAuthor(ident.getKey().longValue());
+						page.setModifyAuthor(getIdentity().getKey().longValue());
 						page.setUpdateComment(wikiEditForm.getUpdateComment());
-						if(page.getInitalAuthor() == 0) page.setInitalAuthor(ident.getKey().longValue());
+						if(page.getInitalAuthor() == 0) page.setInitalAuthor(getIdentity().getKey().longValue());
 						//menu page only editable by admin and owner set new content if changed
 						if (page.getPageName().equals(WikiPage.WIKI_MENU_PAGE)) wikiMenuComp.setWikiContent(page.getContent());
 						WikiManager.getInstance().saveWikiPage(ores, page, true, wiki);
diff --git a/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/WikiMarkupRenderer.java b/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/WikiMarkupRenderer.java
index 99b7559b1942a824978d9fe5506ce192327fe20c..fd9557b4907b4db6eba73ec9325d7b698ea69cdf 100644
--- a/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/WikiMarkupRenderer.java
+++ b/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/WikiMarkupRenderer.java
@@ -29,7 +29,6 @@ import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.util.Locale;
 
-import org.jamwiki.parser.AbstractParser;
 import org.jamwiki.parser.ParserDocument;
 import org.jamwiki.parser.ParserInput;
 import org.jamwiki.parser.jflex.JFlexParser;
@@ -97,9 +96,6 @@ public class WikiMarkupRenderer implements ComponentRenderer {
 		String uri = out.toString();
 		
 		ParserDocument parsedDoc = null;
-
-		
-		
 		String uniqueId = "o_wiki"+wikiComp.getDispatchID();
 		try {
 			uri = URLDecoder.decode(uri, "utf-8");
@@ -113,7 +109,7 @@ public class WikiMarkupRenderer implements ComponentRenderer {
 			sb.append(uniqueId);
 			sb.append("\">");
 		
-			AbstractParser parser = new JFlexParser(input);
+			JFlexParser parser = new JFlexParser(input);
 			parsedDoc = parser.parseHTML(wikiComp.getWikiContent());
 		} catch (UnsupportedEncodingException e) {
 			//encoding utf-8 should be ok
@@ -137,6 +133,7 @@ public class WikiMarkupRenderer implements ComponentRenderer {
 	 *      org.olat.core.gui.translator.Translator,
 	 *      org.olat.core.gui.render.RenderingState)
 	 */
+	@Override
 	public void renderHeaderIncludes(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator,
 			RenderingState rstate) {
 		//
diff --git a/src/main/java/org/olat/modules/wiki/portfolio/WikiArtefactDetailsController.java b/src/main/java/org/olat/modules/wiki/portfolio/WikiArtefactDetailsController.java
index 6898d3eab6eb393b86f8a9aff45a86ebf9f1d6a1..546ff5fcfd79d2c0a215ab9f5e373f21144bcac3 100644
--- a/src/main/java/org/olat/modules/wiki/portfolio/WikiArtefactDetailsController.java
+++ b/src/main/java/org/olat/modules/wiki/portfolio/WikiArtefactDetailsController.java
@@ -67,7 +67,6 @@ public class WikiArtefactDetailsController extends BasicController {
 	}
 
 	@Override
-	@SuppressWarnings("unused")
 	protected void event(UserRequest ureq, Component source, Event event) {
 		//
 	}
@@ -105,23 +104,19 @@ public class WikiArtefactDetailsController extends BasicController {
 	public static class DummyDataHandler implements DataHandler {
 
 		@Override
-		@SuppressWarnings("unused")
 		public boolean exists(String virtualWiki, String topic) {
 			return true;
 		}
 
 		@Override
-		@SuppressWarnings("unused")
 		public Topic lookupTopic(String virtualWiki, String topicName, boolean deleteOK, Object transactionObject) throws Exception {
 			return null;
 		}
 
 		@Override
-		@SuppressWarnings("unused")
 		public WikiFile lookupWikiFile(String virtualWiki, String topicName) throws Exception {
 			return null;
 		}
 	}
-	
 }
 
diff --git a/src/main/java/org/olat/modules/wiki/versioning/OlatVersionManager.java b/src/main/java/org/olat/modules/wiki/versioning/OlatVersionManager.java
deleted file mode 100644
index 12ab6cee4f69e7625a57c58b3feea34afdd533d5..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/modules/wiki/versioning/OlatVersionManager.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.  
-* <p>
-*/
-package org.olat.modules.wiki.versioning;
-
-import java.util.List;
-
-import org.olat.modules.wiki.WikiPage;
-
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.
-*/
-
-public class OlatVersionManager implements VersionManager {
-	//private VersionStorage storage;
-  private DifferenceService service;
-
-	public void storeVersion(WikiPage page) {
-		// TODO Auto-generated method stub
-		
-	}
-
-	public WikiPage loadVersion(WikiPage page, int version) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	public List getHistory(WikiPage page) {
-		return null;
-	}
-
-	public List diff(WikiPage page, int version1, int version2) {
-		return service.diff(loadVersion(page, version1).getContent(), loadVersion(page, version2).getContent());
-	}
-
-}
diff --git a/src/main/java/org/olat/modules/wiki/versioning/VersionManager.java b/src/main/java/org/olat/modules/wiki/versioning/VersionManager.java
deleted file mode 100644
index 17ccc2d88e162b3ddb2e69cb389a27b169ab5a66..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/modules/wiki/versioning/VersionManager.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * This file is part of "SnipSnap Wiki/Weblog".
- *
- * Copyright (c) 2002 Stephan J. Schmidt, Matthias L. Jugel
- * All Rights Reserved.
- *
- * Please visit http://snipsnap.org/ for updates and contact.
- *
- * --LICENSE NOTICE--
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- * --LICENSE NOTICE--
- */
-
-package org.olat.modules.wiki.versioning;
-
-import java.util.List;
-
-import org.olat.modules.wiki.WikiPage;
-
-/**
- * Manages versions of snips
- *
- * @author Stephan J. Schmidt
- */
-
-public interface VersionManager {
-  public void storeVersion(WikiPage page);
-  public WikiPage loadVersion(WikiPage page, int version);
-  public List getHistory(WikiPage page);
-  public List diff(WikiPage page, int version1, int version2);
-}
\ No newline at end of file
diff --git a/src/main/java/org/olat/portfolio/ui/artefacts/view/EPArtefactViewReadOnlyController.java b/src/main/java/org/olat/portfolio/ui/artefacts/view/EPArtefactViewReadOnlyController.java
index c52283c5160aa641e81f759b41e061c027948ad8..47ae5cecf65d1585a32ce07d1b5d3325d2d8cbef 100644
--- a/src/main/java/org/olat/portfolio/ui/artefacts/view/EPArtefactViewReadOnlyController.java
+++ b/src/main/java/org/olat/portfolio/ui/artefacts/view/EPArtefactViewReadOnlyController.java
@@ -19,6 +19,7 @@
  */
 package org.olat.portfolio.ui.artefacts.view;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.olat.core.CoreSpringFactory;
@@ -76,7 +77,11 @@ public class EPArtefactViewReadOnlyController extends BasicController {
 		
 		ePFMgr = CoreSpringFactory.getImpl(EPFrontendManager.class);
 		List<String> tags = ePFMgr.getArtefactTags(artefact);
-		vC.contextPut("tags", StringHelper.formatAsCSVString(tags));
+		List<String> escapedTags = new ArrayList<String>(tags.size());
+		for(String tag:tags) {
+			escapedTags.add(StringHelper.escapeHtml(tag));
+		}
+		vC.contextPut("tags", StringHelper.formatAsCSVString(escapedTags));
 		
 		putInitialPanel(vC);	
 	}
diff --git a/src/main/java/org/olat/resource/accesscontrol/ui/_content/configuration_list.html b/src/main/java/org/olat/resource/accesscontrol/ui/_content/configuration_list.html
index 5d25ba985a3a3f6a0ff3bfdae1cffc4705abb315..b0db9f3013ed1579d72c877c662e34938172a571 100644
--- a/src/main/java/org/olat/resource/accesscontrol/ui/_content/configuration_list.html
+++ b/src/main/java/org/olat/resource/accesscontrol/ui/_content/configuration_list.html
@@ -14,7 +14,7 @@
 			#set($css = $confController.getLink().getMethod().getMethodCssClass())
 			<tr class="$css">
 				<td><span class="b_with_small_icon_left ${css}_icon">$confController.name</span></td>
-				<td><span class="b_access_infos">$confController.infos</span></td>
+				<td><span class="b_access_infos">$r.escapeHtml($confController.infos)</span></td>
 				<td><div class="b_form_element">$r.render("from_$confController.link.key")</div></td>
 				<td><div class="b_form_element">$r.render("to_$confController.link.key")</div></td>
 				<td>#if($r.available("del_$confController.link.key")) $r.render("del_$confController.link.key") #end</td>
diff --git a/src/main/java/org/olat/search/ui/ResultsSearchController.java b/src/main/java/org/olat/search/ui/ResultsSearchController.java
index ce1a0cf6b8015372af7b7f2db3606cdb30438e29..0e9ea43197464b2e506329e5205bc3813fa7ae99 100644
--- a/src/main/java/org/olat/search/ui/ResultsSearchController.java
+++ b/src/main/java/org/olat/search/ui/ResultsSearchController.java
@@ -144,7 +144,7 @@ public class ResultsSearchController extends SearchInputController {
 			hideDidYouMeanWords();
 			SearchResults results = doSearch(ureq, didYouMeanWord, condQueries, getParentContext(), getDocumentType(), key, 0, RESULT_PER_PAGE, false);
 			resultCtlr.setSearchResults(ureq, results);
-			persistSearch(ureq);
+			persistSearch();
 		} else if (source == extendedSearchLink) {
 			extendedSearch = true;
 			advancedSearchController.setSearchString(getSearchString());
@@ -197,7 +197,7 @@ public class ResultsSearchController extends SearchInputController {
 			resultCtlr.nextSearchResults(ureq, results);
 		}
 		
-		persistSearch(ureq);
+		persistSearch();
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/search/ui/SearchControllerFactory.java b/src/main/java/org/olat/search/ui/SearchControllerFactory.java
index e051ff0ceb9e35be6c519623cf705412334e1d66..c626531874435f7d0985ddc305cbd808f827f01c 100644
--- a/src/main/java/org/olat/search/ui/SearchControllerFactory.java
+++ b/src/main/java/org/olat/search/ui/SearchControllerFactory.java
@@ -124,9 +124,11 @@ public class SearchControllerFactory implements SearchServiceUIFactory {
 				if ("CourseNode".equals(tokenType)) {
 					String repoKey = allTokens.get(0).split("[:]")[1];
 					RepositoryEntry re = RepositoryManager.getInstance().lookupRepositoryEntry(Long.parseLong(repoKey));
-					ICourse course = CourseFactory.loadCourse(re.getOlatResource());
-					CourseNode courseNode = course.getRunStructure().getNode(tokenKey);
-					return courseNode.getShortTitle();
+					if(re != null) {
+						ICourse course = CourseFactory.loadCourse(re.getOlatResource());
+						CourseNode courseNode = course.getRunStructure().getNode(tokenKey);
+						return courseNode.getShortTitle();
+					}
 				}
 				if ("Identity".equals(tokenType)) {
 					IdentityShort identity  = BaseSecurityManager.getInstance().loadIdentityShortByKey(Long.parseLong(tokenKey));
diff --git a/src/main/java/org/olat/search/ui/SearchInputController.java b/src/main/java/org/olat/search/ui/SearchInputController.java
index 090526b0f3b11b5d809da92de62bdd96263aa26b..df6317777ca00d1810a67bcf7619a9a3fe9e22e8 100644
--- a/src/main/java/org/olat/search/ui/SearchInputController.java
+++ b/src/main/java/org/olat/search/ui/SearchInputController.java
@@ -261,12 +261,12 @@ public class SearchInputController extends FormBasicController {
 			oldSearchString = props.getProperty("s");
 		}
 		
-		persistSearch(ureq);
+		persistSearch();
 		
 		if (DisplayOption.BUTTON.equals(displayOption) || DisplayOption.BUTTON_WITH_LABEL.equals(displayOption)) {
 			//no search, only popup
 			createResultsSearchController(ureq);
-			popupResultsSearchController(ureq);
+			popupResultsSearchController();
 			if(resultCtlr.getPersistedSearch() != null && !resultCtlr.getPersistedSearch().isEmpty()) {
 				resultCtlr.doSearch(ureq);
 			}
@@ -279,7 +279,7 @@ public class SearchInputController extends FormBasicController {
 
 				createResultsSearchController(ureq);
 				resultCtlr.setSearchString(searchString);
-				popupResultsSearchController(ureq);
+				popupResultsSearchController();
 				resultCtlr.doSearch(ureq);
 			}
 		}
@@ -309,7 +309,7 @@ public class SearchInputController extends FormBasicController {
 		}
 	}
 	
-	protected void persistSearch(UserRequest ureq) {
+	protected final void persistSearch() {
 		if(getResourceUrl() != null) {
 			String uri = getResourceUrl();
 			Properties props = prefs.get(uri);
@@ -362,7 +362,7 @@ public class SearchInputController extends FormBasicController {
 		}
 	}
 	
-	private void popupResultsSearchController(UserRequest ureq) {
+	private void popupResultsSearchController() {
 		String title = translate("search.title");
 		searchDialogBox = new CloseableModalController(getWindowControl(), title, resultCtlr.getInitialComponent());
 		searchDialogBox.activate();