diff --git a/src/main/java/de/bps/course/nodes/cl/ChecklistCourseNodeConfiguration.java b/src/main/java/de/bps/course/nodes/cl/ChecklistCourseNodeConfiguration.java
index 6e630ec21dccefe55d068383d909a7a3c81dac90..90949a971d8fa9ecf0f9dd108bb341dbd9695ad7 100644
--- a/src/main/java/de/bps/course/nodes/cl/ChecklistCourseNodeConfiguration.java
+++ b/src/main/java/de/bps/course/nodes/cl/ChecklistCourseNodeConfiguration.java
@@ -19,10 +19,8 @@
  */
 package de.bps.course.nodes.cl;
 
-import java.util.List;
 import java.util.Locale;
 
-import org.olat.core.extensions.ExtensionResource;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.Util;
 import org.olat.course.nodes.AbstractCourseNodeConfiguration;
@@ -81,26 +79,4 @@ public class ChecklistCourseNodeConfiguration extends AbstractCourseNodeConfigur
 		Translator translator = Util.createPackageTranslator(this.getClass(), locale, fallback);
 		return translator.translate("title_cl");
 	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#getExtensionCSS()
-	 */
-	public ExtensionResource getExtensionCSS() {
-		return null;
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#getExtensionResources()
-	 */
-	public List getExtensionResources() {
-		return null;
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#getName()
-	 */
-	public String getName() {
-		return getAlias();
-	}
-
 }
diff --git a/src/main/java/org/olat/_spring/extensionContext.xml b/src/main/java/org/olat/_spring/extensionContext.xml
index 4015e1c541281908414843f3ba5d87a7ed9d5f1a..ee1ab52c43d2b4dba331f6d3ecaf250eacd3b630 100644
--- a/src/main/java/org/olat/_spring/extensionContext.xml
+++ b/src/main/java/org/olat/_spring/extensionContext.xml
@@ -264,8 +264,6 @@
 			</list>
 		</property>
 	</bean>  
-	
-	
 
 	<!--  the "systemconfig" parent node -->
 	<bean class="org.olat.core.extensions.action.GenericActionExtension"  init-method="initExtensionPoints">
@@ -363,6 +361,25 @@
 			</list>
 		</property>
 	</bean>
+	<!-- Security admin. panel -->
+	<bean class="org.olat.core.extensions.action.GenericActionExtension" init-method="initExtensionPoints">
+		<property name="order" value="7205" />
+		<property name="actionController">	
+			<bean class="org.olat.core.gui.control.creator.AutoCreator" scope="prototype">
+				<property name="className" value="org.olat.admin.security.SecurityAdminController"/>
+			</bean>
+		</property>
+		<property name="navigationKey" value="secadmin" />
+		<property name="i18nActionKey" value="admin.menu.title"/>
+		<property name="i18nDescriptionKey" value="admin.menu.title.alt"/>
+		<property name="translationPackage" value="org.olat.admin.security"/>
+		<property name="parentTreeNodeIdentifier" value="sysconfigParent" /> 
+		<property name="extensionPoints">
+			<list>	
+				<value>org.olat.admin.SystemAdminMainController</value>		
+			</list>
+		</property>
+	</bean>
 	
 	<!--  the folder menu-entry (reset thumbnails...) -->
 	<bean class="org.olat.core.extensions.action.GenericActionExtension" init-method="initExtensionPoints" >
diff --git a/src/main/java/org/olat/admin/security/SecurityAdminController.java b/src/main/java/org/olat/admin/security/SecurityAdminController.java
new file mode 100644
index 0000000000000000000000000000000000000000..139c36d0bd101bf4b4127cc2bce978ad7c0161e5
--- /dev/null
+++ b/src/main/java/org/olat/admin/security/SecurityAdminController.java
@@ -0,0 +1,93 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <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 the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <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>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.admin.security;
+
+import org.olat.basesecurity.BaseSecurityModule;
+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;
+import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement;
+import org.olat.core.gui.components.form.flexible.impl.FormBasicController;
+import org.olat.core.gui.components.form.flexible.impl.FormEvent;
+import org.olat.core.gui.control.Controller;
+import org.olat.core.gui.control.WindowControl;
+
+/**
+ * 
+ * Initial date: 23.12.2013<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class SecurityAdminController extends FormBasicController {
+	
+	private MultipleSelectionElement wikiEl, topFrameEl;
+	private final BaseSecurityModule securityModule;
+	
+	public SecurityAdminController(UserRequest ureq, WindowControl wControl) {
+		super(ureq, wControl);
+		securityModule = CoreSpringFactory.getImpl(BaseSecurityModule.class);
+		initForm(ureq);
+	}
+
+	@Override
+	protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
+		setFormTitle("sec.title");
+		setFormDescription("sec.description");
+		setFormContextHelp("org.olat.admin.security", "ced-sec.html", "help.hover.sec");
+		
+		String[] frameKeys = new String[]{ "on" };
+		String[] frameValues = new String[]{ "" };
+		
+		topFrameEl = uifactory.addCheckboxesHorizontal("sec.topframe", "sec.topframe", formLayout, frameKeys, frameValues, null);
+		topFrameEl.select("on", securityModule.isForceTopFrame());
+		topFrameEl.addActionListener(this, FormEvent.ONCHANGE);
+		
+		wikiEl = uifactory.addCheckboxesHorizontal("sec.wiki", "sec.wiki", formLayout, frameKeys, frameValues, null);
+		wikiEl.select("on", securityModule.isWikiEnabled());
+		wikiEl.addActionListener(this, FormEvent.ONCHANGE);
+	}
+	
+	@Override
+	protected void doDispose() {
+		//
+	}
+
+	@Override
+	protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
+		if(topFrameEl == source) {
+			boolean enabled = topFrameEl.isAtLeastSelected(1);
+			securityModule.setForceTopFrame(enabled);
+		} else if(wikiEl == source) {
+			boolean enabled = wikiEl.isAtLeastSelected(1);
+			securityModule.setWikiEnabled(enabled);
+		}
+		super.formInnerEvent(ureq, source, event);
+	}
+
+	@Override
+	protected void formOK(UserRequest ureq) {
+		//
+	}
+
+
+	
+
+}
diff --git a/src/main/java/org/olat/admin/security/_chelp/ced-sec.html b/src/main/java/org/olat/admin/security/_chelp/ced-sec.html
new file mode 100644
index 0000000000000000000000000000000000000000..d8d2bace3d578cfe2ea100f00f39e2acef78f017
--- /dev/null
+++ b/src/main/java/org/olat/admin/security/_chelp/ced-sec.html
@@ -0,0 +1 @@
+$r.translate("chelp.sec1")
diff --git a/src/main/java/org/olat/admin/security/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/admin/security/_i18n/LocalStrings_de.properties
new file mode 100644
index 0000000000000000000000000000000000000000..7f234fe55cff3cef04235ed9d02f7f8a3cd3ead6
--- /dev/null
+++ b/src/main/java/org/olat/admin/security/_i18n/LocalStrings_de.properties
@@ -0,0 +1,11 @@
+#Thu Aug 06 11:28:42 CEST 2009
+admin.menu.title=Sicherheit
+admin.menu.title.alt=Sicherheitsaspekten von OpenOLAT konfigurieren
+chelp.sec1=Sicherheitsaspekten von OpenOLAT...
+chelp.ced-sec.title=Sicherheitsaspekten von OpenOLAT
+help.hover.sec=Hilfe zur Sicherheits in OpenOLAT konfigurieren
+sec.title=Sicherheitsaspekten von OpenOLAT
+sec.description=Sie k\u00F6nnen hier ein paar Sicherheitsentscheidung nehmen
+sec.topframe=Enforce top frame
+sec.wiki=Wiki
+
diff --git a/src/main/java/org/olat/basesecurity/BaseSecurityModule.java b/src/main/java/org/olat/basesecurity/BaseSecurityModule.java
index ae24edd79328307421f670ff7b22b045847db6cb..b884a1cbbef0f5421edd88a80b183e3f7b7343dd 100644
--- a/src/main/java/org/olat/basesecurity/BaseSecurityModule.java
+++ b/src/main/java/org/olat/basesecurity/BaseSecurityModule.java
@@ -81,7 +81,9 @@ public class BaseSecurityModule extends AbstractOLATModule {
 
 	private static final String USERINFOS_TUNNEL_CBB = "userInfosTunnelCourseBuildingBlock";
 	
-	
+	private static final String FORCE_TOP_FRAME = "forceTopFrame";
+	private static final String WIKI_ENABLED = "wiki";
+
 	/**
 	 * default values
 	 */
@@ -124,6 +126,9 @@ public class BaseSecurityModule extends AbstractOLATModule {
 	private String userSearchAutocompleteForAdministrators;
 	
 	private String userInfosTunnelCourseBuildingBlock;
+	
+	private String forceTopFrame;
+	private String wikiEnabled;
 
 
 	private BaseSecurityModule(String defaultAuthProviderIdentifier) {
@@ -189,6 +194,9 @@ public class BaseSecurityModule extends AbstractOLATModule {
 		userSearchMaxResults = getStringConfigParameter(USERSEARCH_MAXRESULTS, "-1", true);
 
 		userInfosTunnelCourseBuildingBlock = getStringConfigParameter(USERINFOS_TUNNEL_CBB, "disabled", true);
+
+		forceTopFrame = getStringConfigParameter(FORCE_TOP_FRAME, "disabled", true);
+		wikiEnabled = getStringConfigParameter(WIKI_ENABLED, "enabled", true);
 	}
 
 	@Override
@@ -269,6 +277,15 @@ public class BaseSecurityModule extends AbstractOLATModule {
 		if(StringHelper.containsNonWhitespace(enabled)) {
 			userInfosTunnelCourseBuildingBlock = enabled;
 		}
+		
+		enabled = getStringPropertyValue(FORCE_TOP_FRAME, true);
+		if(StringHelper.containsNonWhitespace(enabled)) {
+			forceTopFrame = enabled;
+		}
+		enabled = getStringPropertyValue(WIKI_ENABLED, true);
+		if(StringHelper.containsNonWhitespace(enabled)) {
+			wikiEnabled = enabled;
+		}
 	}
 
 	@Override
@@ -482,6 +499,22 @@ public class BaseSecurityModule extends AbstractOLATModule {
 	public void setUserInfosTunnelCourseBuildingBlock(String enable) {
 		setStringProperty(USERINFOS_TUNNEL_CBB, enable, true);
 	}
-	
-	
+
+	public boolean isForceTopFrame() {
+		return "enabled".equals(forceTopFrame);
+	}
+
+	public void setForceTopFrame(boolean enable) {
+		String enabled = enable ? "enabled" : "disabled";
+		setStringProperty(FORCE_TOP_FRAME, enabled, true);
+	}
+
+	public boolean isWikiEnabled() {
+		return "enabled".equals(wikiEnabled);
+	}
+
+	public void setWikiEnabled(boolean enable) {
+		String enabled = enable ? "enabled" : "disabled";
+		setStringProperty(WIKI_ENABLED, enabled, true);
+	}
 }
\ No newline at end of file
diff --git a/src/main/java/org/olat/core/commons/chiefcontrollers/BaseChiefController.java b/src/main/java/org/olat/core/commons/chiefcontrollers/BaseChiefController.java
index 01a305bff17f52e8ef97c18d4f32057760d23103..3051fb0247442c9d795ee26ecc8dfb1983f724da 100644
--- a/src/main/java/org/olat/core/commons/chiefcontrollers/BaseChiefController.java
+++ b/src/main/java/org/olat/core/commons/chiefcontrollers/BaseChiefController.java
@@ -29,6 +29,8 @@ package org.olat.core.commons.chiefcontrollers;
 import java.util.HashSet;
 import java.util.Set;
 
+import org.olat.basesecurity.BaseSecurityModule;
+import org.olat.core.CoreSpringFactory;
 import org.olat.core.dispatcher.Dispatcher;
 import org.olat.core.dispatcher.mapper.GlobalMapperRegistry;
 import org.olat.core.dispatcher.mapper.Mapper;
@@ -137,6 +139,10 @@ public class BaseChiefController extends DefaultChiefController implements Conte
 
 		// component-id of mainPanel for the window id
 		mainvc.contextPut("o_winid", mainPanel.getDispatchID());
+		
+		BaseSecurityModule securityModule = CoreSpringFactory.getImpl(BaseSecurityModule.class);
+		mainvc.contextPut("enforceTopFrame", securityModule.isForceTopFrame());
+		
 		// add jsMath library
 		mainvc.contextPut("jsMathEnabled", Boolean.TRUE);
 		// add optional css classes
diff --git a/src/main/java/org/olat/core/commons/chiefcontrollers/_content/_screenreader/baselayout.html b/src/main/java/org/olat/core/commons/chiefcontrollers/_content/_screenreader/baselayout.html
index 5f3709fab1047dfbf9259d483e62f71c1c18a336..938937d486c077f7235bd8c5198e766fdb4b8cad 100644
--- a/src/main/java/org/olat/core/commons/chiefcontrollers/_content/_screenreader/baselayout.html
+++ b/src/main/java/org/olat/core/commons/chiefcontrollers/_content/_screenreader/baselayout.html
@@ -24,9 +24,13 @@ o_info.uriprefix="$r.relWinLink()";
 o_info.bc="$o_bc";
 o_info.dirty_form = "$r.translate("form.dirty")";
 o_info.hasFocus = false;
-function o2start(){o_init();
+#if($enforceTopFrame)
+if (top!=self){top.location=self.location+"?o_winrndo=1";}
+#end
+function o2start(){
+	o_init();
 ## js B
-$r.renderBodyOnLoadJSFunctionCall()
+	$r.renderBodyOnLoadJSFunctionCall()
 ## js E
 }
 </script>
diff --git a/src/main/java/org/olat/core/commons/chiefcontrollers/_content/body.html b/src/main/java/org/olat/core/commons/chiefcontrollers/_content/body.html
index f1ff7ed595e5228d9bf00f3cc87c3cfe67cef764..c12271d392190213bb1a6502a90e0c2154d992dc 100644
--- a/src/main/java/org/olat/core/commons/chiefcontrollers/_content/body.html
+++ b/src/main/java/org/olat/core/commons/chiefcontrollers/_content/body.html
@@ -37,7 +37,9 @@ o_info.i18n_noresponse_title = "$r.escapeDoubleQuotes($r.translate("server.no.re
 o_info.i18n_noresponse = "$r.escapeDoubleQuotes($r.translate("server.no.response"))";
 ## Initialize zindex manager
 o_info.zseed = 0;
-
+#if($enforceTopFrame)
+if (top!=self){top.location=self.location+"?o_winrndo=1";}
+#end
 function b_start(){
 	o_init();
 	## js B
diff --git a/src/main/java/org/olat/core/gui/control/winmgr/WindowManagerImpl.java b/src/main/java/org/olat/core/gui/control/winmgr/WindowManagerImpl.java
index 029e6a6ca45719dd673a96a4c8d3a16911fb3c97..33b19ec06e907e2ed909341633a9ab5194bc4799 100644
--- a/src/main/java/org/olat/core/gui/control/winmgr/WindowManagerImpl.java
+++ b/src/main/java/org/olat/core/gui/control/winmgr/WindowManagerImpl.java
@@ -78,7 +78,7 @@ public class WindowManagerImpl extends BasicManager implements WindowManager {
 	
 	private InterceptHandler screenreader_interceptHandler = null;
 	
-	private Map<Class,ComponentRenderer> screenReaderRenderers = new HashMap<Class,ComponentRenderer>();
+	private Map<Class<? extends Component>,ComponentRenderer> screenReaderRenderers = new HashMap<>();
 
 	private PopupBrowserWindowControllerCreator pbwcc;
 	
diff --git a/src/main/java/org/olat/core/gui/exception/ExceptionWindowController.java b/src/main/java/org/olat/core/gui/exception/ExceptionWindowController.java
index a2f8d900a1c6100018775f3b6a1986e969c4184b..6c5fb20da0a176386cd0b2bb4f5dd6eb70e52e5f 100644
--- a/src/main/java/org/olat/core/gui/exception/ExceptionWindowController.java
+++ b/src/main/java/org/olat/core/gui/exception/ExceptionWindowController.java
@@ -30,6 +30,8 @@ package org.olat.core.gui.exception;
 import java.util.Date;
 import java.util.List;
 
+import org.olat.basesecurity.BaseSecurityModule;
+import org.olat.core.CoreSpringFactory;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.WindowSettings;
 import org.olat.core.gui.Windows;
@@ -50,6 +52,7 @@ import org.olat.core.id.context.ContextEntry;
 import org.olat.core.id.context.HistoryPoint;
 import org.olat.core.logging.KnownIssueException;
 import org.olat.core.logging.OLATRuntimeException;
+import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 import org.olat.core.util.Formatter;
 import org.olat.core.util.StringHelper;
@@ -64,6 +67,7 @@ import org.olat.core.util.i18n.I18nManager;
  * @author Felix Jost
  */
 public class ExceptionWindowController extends DefaultChiefController {
+	private static final OLog log = Tracing.createLoggerFor(ExceptionWindowController.class);
 	private static final String PACKAGE = Util.getPackageName(ExceptionWindowController.class);
 	private static final String VELOCITY_ROOT = Util.getPackageVelocityRoot(ExceptionWindowController.class);
 
@@ -78,7 +82,7 @@ public class ExceptionWindowController extends DefaultChiefController {
 		// the idea is that at this stage the throwable still contains a stacktrace but passed into the OLATRuntimeException
 		// below as the cause it somehow gets lost. If this does not turn out to be true then the line below can be removed.
 		// in any case, it is just a log.warn
-		Tracing.logWarn("ExceptionWindowController<init>: Throwable occurred, logging the full stacktrace:", th, getClass());
+		log.warn("ExceptionWindowController<init>: Throwable occurred, logging the full stacktrace:", th);
 
 		// Disable inline translation mode whenever an exception occurs
 		I18nManager i18nMgr = I18nManager.getInstance();
@@ -87,10 +91,14 @@ public class ExceptionWindowController extends DefaultChiefController {
 			allowBackButton = false;
 			i18nMgr.setMarkLocalizedStringsEnabled(ureq.getUserSession(), false);			
 		}
-		//
+
 		Translator trans = new PackageTranslator(PACKAGE, ureq.getLocale());
 		Formatter formatter = Formatter.getInstance(ureq.getLocale());
 		msg = new VelocityContainer("olatmain", VELOCITY_ROOT + "/exception_page.html", trans, this);
+
+		BaseSecurityModule securityModule = CoreSpringFactory.getImpl(BaseSecurityModule.class);
+		msg.contextPut("enforceTopFrame", new Boolean(securityModule.isForceTopFrame()));
+		
 		// Disallow wrapping of divs around the panel and the main velocity page
 		// (since it contains the "<html><head... intro of the html page,
 		// and thus has better to be replaced as a whole (new page load) instead of
diff --git a/src/main/java/org/olat/core/gui/exception/_content/exception_page.html b/src/main/java/org/olat/core/gui/exception/_content/exception_page.html
index 925fa9828a9ac728a476ad4a88fe466e3d87473d..a9821b94f731323dd2cff6be7676cbc8f1d08acc 100644
--- a/src/main/java/org/olat/core/gui/exception/_content/exception_page.html
+++ b/src/main/java/org/olat/core/gui/exception/_content/exception_page.html
@@ -10,7 +10,10 @@
 <meta http-equiv="pragma-directive" content="no-cache" />
 <meta http-equiv="cache-directive" content="no-cache" />
 <script type="text/javascript">
-/* <![CDATA[ */ 
+/* <![CDATA[ */
+#if($enforceTopFrame)
+if (top!=self){top.location=self.location+"?o_winrndo=1";}
+#end
 var o_info = new Object();
 /* ]]> */
 </script>
diff --git a/src/main/java/org/olat/course/nodes/WikiCourseNode.java b/src/main/java/org/olat/course/nodes/WikiCourseNode.java
index 2affe7b77c64a46e50fe25aa57ef460b9a130d35..9a661ded554c213fceea4ed5978bbda83b96d03c 100644
--- a/src/main/java/org/olat/course/nodes/WikiCourseNode.java
+++ b/src/main/java/org/olat/course/nodes/WikiCourseNode.java
@@ -76,7 +76,8 @@ import org.olat.repository.RepositoryManager;
  * @author Felix Jost
  */
 public class WikiCourseNode extends AbstractAccessableCourseNode {
-	
+	private static final long serialVersionUID = -5800975339569440113L;
+
 	private static final OLog log = Tracing.createLoggerFor(WikiCourseNode.class);
 
 	public static final String TYPE = "wiki";
diff --git a/src/main/java/org/olat/course/nodes/_spring/buildingblockContext.xml b/src/main/java/org/olat/course/nodes/_spring/buildingblockContext.xml
index e6f97e846bc72449c2586b12b7589c33a5f8f72d..49ed53ecfd94298a2933764a80c9c647b37d558f 100644
--- a/src/main/java/org/olat/course/nodes/_spring/buildingblockContext.xml
+++ b/src/main/java/org/olat/course/nodes/_spring/buildingblockContext.xml
@@ -4,9 +4,9 @@
 	xmlns:context="http://www.springframework.org/schema/context" 
 	xsi:schemaLocation="
   http://www.springframework.org/schema/beans 
-  http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
+  http://www.springframework.org/schema/beans/spring-beans.xsd 
   http://www.springframework.org/schema/context 
-  http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+  http://www.springframework.org/schema/context/spring-context.xsd">
 
 	<context:component-scan base-package="org.olat.course.nodes.en" />
 	  
diff --git a/src/main/java/org/olat/course/nodes/wiki/WikiCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/wiki/WikiCourseNodeConfiguration.java
index 7e1124acfb72e81aaa953bfe433b9dabaab58d73..9044945500bcb1123d3407befca106b8a8dbc6a9 100644
--- a/src/main/java/org/olat/course/nodes/wiki/WikiCourseNodeConfiguration.java
+++ b/src/main/java/org/olat/course/nodes/wiki/WikiCourseNodeConfiguration.java
@@ -28,6 +28,8 @@ package org.olat.course.nodes.wiki;
 import java.util.List;
 import java.util.Locale;
 
+import org.olat.basesecurity.BaseSecurityModule;
+import org.olat.core.CoreSpringFactory;
 import org.olat.core.extensions.ExtensionResource;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.Util;
@@ -39,7 +41,7 @@ import org.olat.modules.wiki.Wiki;
 /**
  * 
  * Description:<br>
- * TODO: guido Class Description for WikiCourseNodeConfiguration
+ * Configuration of the wiki course node
  * 
  */
 public class WikiCourseNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration {
@@ -52,6 +54,11 @@ public class WikiCourseNodeConfiguration extends AbstractCourseNodeConfiguration
 		return new WikiCourseNode();
 	}
 
+	@Override
+	public boolean isEnabled() {
+		return CoreSpringFactory.getImpl(BaseSecurityModule.class).isWikiEnabled() && super.isEnabled();
+	}
+
 	/**
 	 * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkText(java.util.Locale)
 	 */
diff --git a/src/main/java/org/olat/repository/controllers/RepositoryMainController.java b/src/main/java/org/olat/repository/controllers/RepositoryMainController.java
index aa1b03271c4af0372e8aba193688ac91eaf98d6b..84d9b50138167c91e64312a555eb320d6713fd28 100644
--- a/src/main/java/org/olat/repository/controllers/RepositoryMainController.java
+++ b/src/main/java/org/olat/repository/controllers/RepositoryMainController.java
@@ -27,6 +27,7 @@ package org.olat.repository.controllers;
 
 import java.util.List;
 
+import org.olat.basesecurity.BaseSecurityModule;
 import org.olat.catalog.CatalogEntry;
 import org.olat.catalog.CatalogModule;
 import org.olat.catalog.ui.CatalogController;
@@ -151,6 +152,7 @@ public class RepositoryMainController extends MainLayoutBasicController implemen
 	private final CatalogModule catalogModule;
 	private final RepositoryModule repositoryModule;
 	private final RepositoryManager repositoryManager;
+	private final BaseSecurityModule securityModule;
 
 	/**
 	 * The check for author rights is executed on construction time and then
@@ -169,6 +171,7 @@ public class RepositoryMainController extends MainLayoutBasicController implemen
 		catalogModule = CoreSpringFactory.getImpl(CatalogModule.class);
 		repositoryModule = CoreSpringFactory.getImpl(RepositoryModule.class);
 		repositoryManager = CoreSpringFactory.getImpl(RepositoryManager.class);
+		securityModule = CoreSpringFactory.getImpl(BaseSecurityModule.class);
 		
 		// use i18n from RepositoryManager level
 		setTranslator(Util.createPackageTranslator(RepositoryManager.class, ureq.getLocale()));
@@ -235,7 +238,9 @@ public class RepositoryMainController extends MainLayoutBasicController implemen
 			mainToolC.addLink(RepositoryAddController.ACTION_ADD_COURSE, translate("tools.add.course"), RepositoryAddController.ACTION_ADD_COURSE, "o_toolbox_course o_sel_repo_import_course");
 			mainToolC.addLink(RepositoryAddController.ACTION_ADD_CP, translate("tools.add.cp"), RepositoryAddController.ACTION_ADD_CP, "o_toolbox_content o_sel_repo_import_cp");
 			mainToolC.addLink(RepositoryAddController.ACTION_ADD_SCORM, translate("tools.add.scorm"), RepositoryAddController.ACTION_ADD_SCORM, "o_toolbox_scorm o_sel_repo_import_scorm");
-			mainToolC.addLink(RepositoryAddController.ACTION_ADD_WIKI, translate("tools.add.wiki"), RepositoryAddController.ACTION_ADD_WIKI, "o_toolbox_wiki o_sel_repo_import_wiki");
+			if(securityModule.isWikiEnabled()) {
+				mainToolC.addLink(RepositoryAddController.ACTION_ADD_WIKI, translate("tools.add.wiki"), RepositoryAddController.ACTION_ADD_WIKI, "o_toolbox_wiki o_sel_repo_import_wiki");
+			}
 			mainToolC.addLink(RepositoryAddController.ACTION_ADD_PODCAST, translate("tools.add.podcast"), RepositoryAddController.ACTION_ADD_PODCAST, "o_toolbox_podcast o_sel_repo_import_podcast");
 			mainToolC.addLink(RepositoryAddController.ACTION_ADD_BLOG, translate("tools.add.blog"), RepositoryAddController.ACTION_ADD_BLOG, "o_toolbox_blog o_sel_repo_import_blog");
 			mainToolC.addLink(RepositoryAddController.ACTION_ADD_TEST, translate("tools.add.test"), RepositoryAddController.ACTION_ADD_TEST, "o_toolbox_test o_sel_repo_import_test");
@@ -246,7 +251,9 @@ public class RepositoryMainController extends MainLayoutBasicController implemen
 			mainToolC.addHeader(translate("tools.new.header"));
 			mainToolC.addLink(ACTION_NEW_CREATECOURSE, translate("tools.new.createcourse"), ACTION_NEW_CREATECOURSE, "o_toolbox_course o_sel_repo_new_course");
 			mainToolC.addLink(ACTION_NEW_CREATECP, translate("tools.new.createcp"), ACTION_NEW_CREATECP, "o_toolbox_content o_sel_repo_new_cp");
-			mainToolC.addLink(ACTION_NEW_WIKI, translate("tools.new.wiki"), ACTION_NEW_WIKI, "o_toolbox_wiki o_sel_repo_new_wiki");
+			if(securityModule.isWikiEnabled()) {
+				mainToolC.addLink(ACTION_NEW_WIKI, translate("tools.new.wiki"), ACTION_NEW_WIKI, "o_toolbox_wiki o_sel_repo_new_wiki");
+			}
 			mainToolC.addLink(ACTION_NEW_PODCAST, translate("tools.new.podcast"), ACTION_NEW_PODCAST, "o_toolbox_podcast o_sel_repo_new_podcast");
 			mainToolC.addLink(ACTION_NEW_BLOG, translate("tools.new.blog"), ACTION_NEW_BLOG, "o_toolbox_blog o_sel_repo_new_blog");
 			if (portfolioModule.isEnabled()){
@@ -321,9 +328,11 @@ public class RepositoryMainController extends MainLayoutBasicController implemen
 			node = new GenericTreeNode(translate("search.scorm"), "search.scorm");
 			node.setCssClass("o_sel_repo_scorm");
 			rootNode.addChild(node);
-			node = new GenericTreeNode(translate("search.wiki"), "search.wiki");
-			node.setCssClass("o_sel_repo_wiki");
-			rootNode.addChild(node);
+			if(securityModule.isWikiEnabled()) {
+				node = new GenericTreeNode(translate("search.wiki"), "search.wiki");
+				node.setCssClass("o_sel_repo_wiki");
+				rootNode.addChild(node);
+			}
 			node = new GenericTreeNode(translate("search.podcast"), "search.podcast" );
 			node.setCssClass("o_sel_repo_podcast");
 			rootNode.addChild(node);
@@ -450,10 +459,12 @@ public class RepositoryMainController extends MainLayoutBasicController implemen
 			searchController.enableBackToSearchFormLink(false);
 		} else if (userObject.equals("search.wiki")) { // search
 			// wiki
-			main.setPage(VELOCITY_ROOT + "/index2.html");
- 			mainPanel.setContent(main);
-			searchController.doSearchByTypeLimitAccess(WikiResource.TYPE_NAME, ureq);
-			searchController.enableBackToSearchFormLink(false);
+			if(securityModule.isWikiEnabled()) {
+				main.setPage(VELOCITY_ROOT + "/index2.html");
+	 			mainPanel.setContent(main);
+				searchController.doSearchByTypeLimitAccess(WikiResource.TYPE_NAME, ureq);
+				searchController.enableBackToSearchFormLink(false);
+			}
 		} else if (userObject.equals("search.podcast")) { // search
 			// podcast
 			main.setPage(VELOCITY_ROOT + "/index2.html");
@@ -788,6 +799,7 @@ public class RepositoryMainController extends MainLayoutBasicController implemen
 			cmc.activate();
 			return;
 		} else if (event.getCommand().equals(ACTION_NEW_WIKI)) {
+			if(!securityModule.isWikiEnabled()) return;
 			removeAsListenerAndDispose(addController);
 			addController = new RepositoryAddController(urequest, getWindowControl(), RepositoryAddController.ACTION_NEW_WIKI);
 			listenTo(addController);
diff --git a/src/main/java/org/olat/shibboleth/MessageWindowController.java b/src/main/java/org/olat/shibboleth/MessageWindowController.java
index 4fa734f56860786d8716fb4cfaa46dd72ff4cf16..d56b0a5973b0776a3a14540ba93737edf29c5934 100644
--- a/src/main/java/org/olat/shibboleth/MessageWindowController.java
+++ b/src/main/java/org/olat/shibboleth/MessageWindowController.java
@@ -26,6 +26,8 @@
 
 package org.olat.shibboleth;
 
+import org.olat.basesecurity.BaseSecurityModule;
+import org.olat.core.CoreSpringFactory;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.WindowSettings;
 import org.olat.core.gui.Windows;
@@ -36,23 +38,22 @@ import org.olat.core.gui.control.ChiefController;
 import org.olat.core.gui.control.DefaultChiefController;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowBackOffice;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.helpers.Settings;
+import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 import org.olat.core.util.Util;
 
 /**
  * 
  * Displays a simple message to the user
- * TODO: Lavinia Dumitrescu Class Description for MessageWindowController
  * 
  * <P>
  * Initial Date:  05.11.2007 <br>
  * @author Lavinia Dumitrescu
  */
 public class MessageWindowController extends DefaultChiefController {
-	private static final String PACKAGE = Util.getPackageName(MessageWindowController.class);
+	private static final OLog log = Tracing.createLoggerFor(MessageWindowController.class);
 	private static final String VELOCITY_ROOT = Util.getPackageVelocityRoot(MessageWindowController.class);
 
 	private VelocityContainer msg;
@@ -65,11 +66,14 @@ public class MessageWindowController extends DefaultChiefController {
 	 * @param supportEmail
 	 */
 	public MessageWindowController(UserRequest ureq, Throwable th, String detailedmessage, String supportEmail) {
-		Translator trans = new PackageTranslator(PACKAGE, ureq.getLocale());
+		Translator trans = Util.createPackageTranslator(MessageWindowController.class, ureq.getLocale());
 		//Formatter formatter = Formatter.getInstance(ureq.getLocale());
 		msg = new VelocityContainer("olatmain", VELOCITY_ROOT + "/message.html", trans, this);
+		
+		BaseSecurityModule securityModule = CoreSpringFactory.getImpl(BaseSecurityModule.class);
+		msg.contextPut("enforceTopFrame", new Boolean(securityModule.isForceTopFrame()));
 						
-		Tracing.logWarn(th.getMessage() + " *** User info: " + detailedmessage, th.getClass());
+		log.warn(th.getMessage() + " *** User info: " + detailedmessage);
 		
 		msg.contextPut("buildversion", Settings.getVersion());
 		msg.contextPut("detailedmessage", detailedmessage);					
diff --git a/src/main/java/org/olat/shibboleth/_content/message.html b/src/main/java/org/olat/shibboleth/_content/message.html
index 3229b1265ca29ec18505363a11d1c54468c96fb2..776643c57e0202dd257d58a21f9bff15a90717b2 100644
--- a/src/main/java/org/olat/shibboleth/_content/message.html
+++ b/src/main/java/org/olat/shibboleth/_content/message.html
@@ -19,6 +19,9 @@
 <meta http-equiv="pragma-directive" content="no-cache" />
 <meta http-equiv="cache-directive" content="no-cache" />
 <script type="text/javascript">
+#if($enforceTopFrame)
+if (top!=self){top.location=self.location+"?o_winrndo=1";}
+#end
 var o_info = new Object();
 </script>
 ## CSS theme inclusion: first the standard css and second the IE bugfixes