diff --git a/src/main/java/org/olat/admin/site/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/admin/site/ui/_i18n/LocalStrings_de.properties
index 6c967d9c14102943d112d1bc56e076e59a466f88..cd0ac90d5e166eea942b1094b61977c439e51649 100644
--- a/src/main/java/org/olat/admin/site/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/admin/site/ui/_i18n/LocalStrings_de.properties
@@ -15,7 +15,6 @@ up=Hoch
 down=Runter
 PortalSiteDef=Portal
 GroupsSiteDef=Gruppe
-HomeSiteDef=Home
 CatalogSiteDef=Katalog
 CourseSiteDef=Infoseite n°1
 RepositorySiteDef=Lernressourcen
diff --git a/src/main/java/org/olat/admin/site/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/admin/site/ui/_i18n/LocalStrings_en.properties
index a9210c55ae80a4f54c814caa34701e23d0d2e7bc..91d0f74da1c23447a7d134d283a9c78f55e69c1c 100644
--- a/src/main/java/org/olat/admin/site/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/admin/site/ui/_i18n/LocalStrings_en.properties
@@ -14,7 +14,6 @@ site.alternative.none=No alt.
 up=Up
 down=Down
 GroupsSiteDef=Groups
-HomeSiteDef=Home
 CatalogSiteDef=Katalog
 CourseSiteDef=Infopage n°1
 RepositorySiteDef=Lernressourcen
diff --git a/src/main/java/org/olat/admin/site/ui/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/admin/site/ui/_i18n/LocalStrings_fr.properties
index 1e0fc06ac0e869175add4c62b476f86ba545dc67..37e0f613c845241965174add6903ff363e36f66f 100644
--- a/src/main/java/org/olat/admin/site/ui/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/admin/site/ui/_i18n/LocalStrings_fr.properties
@@ -5,7 +5,6 @@ CourseSiteDef=Page d'infos n\u00B01
 CourseSiteDef2=Page d'infos n\u00B02
 GUIDemoSiteDef=D\u00E9mo GUI
 GroupsSiteDef=Groupes
-HomeSiteDef=Accueil
 QuestionPoolSiteDef=Banque des questions
 RepositorySiteDef=Ressources didactiques
 UserAdminSiteDef=Gestion des utilisateurs
diff --git a/src/main/java/org/olat/admin/site/ui/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/admin/site/ui/_i18n/LocalStrings_pt_BR.properties
index ec3cc0b86d174ccd0121e85a57b0841e152a0019..d5453f2eea9742c75952ee5562813fe15ab4f8d0 100644
--- a/src/main/java/org/olat/admin/site/ui/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/admin/site/ui/_i18n/LocalStrings_pt_BR.properties
@@ -5,7 +5,6 @@ CourseSiteDef=P\u00E1gina de informa\u00E7\u00E3o n\u00BA1
 CourseSiteDef2=P\u00E1gina de informa\u00E7\u00E3o n\u00BA2
 GUIDemoSiteDef=GUI Demo
 GroupsSiteDef=Grupos
-HomeSiteDef=Home
 QuestionPoolSiteDef=Reservat\u00F3rio de perguntas
 RepositorySiteDef=Recursos did\u00E1ticos
 UserAdminSiteDef=Administra\u00E7\u00E3o de usu\u00E1rios
diff --git a/src/main/java/org/olat/core/gui/components/AbstractComponent.java b/src/main/java/org/olat/core/gui/components/AbstractComponent.java
index 77eaf2d7fe504a49eef05d35f668a6d1dc9dd9c0..c574fef0658e80822d97d2b2e8cfcea9ffa1816c 100644
--- a/src/main/java/org/olat/core/gui/components/AbstractComponent.java
+++ b/src/main/java/org/olat/core/gui/components/AbstractComponent.java
@@ -48,7 +48,7 @@ import org.olat.core.util.CodeHelper;
  */
 public abstract class AbstractComponent implements Component {
 
-	private static final OLog log_ = Tracing.createLoggerFor(Component.class);
+	private static final OLog log_ = Tracing.createLoggerFor(AbstractComponent.class);
 
 	private boolean spanReplaceable = false;
 
diff --git a/src/main/java/org/olat/core/gui/components/stack/BreadcrumbedStackedPanel.java b/src/main/java/org/olat/core/gui/components/stack/BreadcrumbedStackedPanel.java
index ab6159defc4aa9888947a5433930f5c017daf6d2..b75151b34128f92a3a6105e84118c8cd6c077ec1 100644
--- a/src/main/java/org/olat/core/gui/components/stack/BreadcrumbedStackedPanel.java
+++ b/src/main/java/org/olat/core/gui/components/stack/BreadcrumbedStackedPanel.java
@@ -34,6 +34,9 @@ import org.olat.core.gui.components.velocity.VelocityContainer;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.translator.Translator;
+import org.olat.core.logging.AssertException;
+import org.olat.core.logging.OLog;
+import org.olat.core.logging.Tracing;
 import org.olat.core.util.StringHelper;
 import org.olat.core.util.Util;
 
@@ -44,7 +47,7 @@ import org.olat.core.util.Util;
  *
  */
 public class BreadcrumbedStackedPanel extends Panel implements StackedPanel, BreadcrumbPanel, ComponentEventListener {
-	
+	private static final OLog log = Tracing.createLoggerFor(BreadcrumbedStackedPanel.class);
 	private static final ComponentRenderer RENDERER = new BreadcrumbedStackedPanelRenderer();
 	
 	protected final List<Link> stack = new ArrayList<>(3);
@@ -123,7 +126,10 @@ public class BreadcrumbedStackedPanel extends Panel implements StackedPanel, Bre
 		List<Component> cmps = new ArrayList<>(3 + stack.size());
 		cmps.add(backLink);
 		cmps.add(closeLink);
-		cmps.add(getContent());
+		Component content = getContent();
+		if(content != null && content != this) {
+			cmps.add(getContent());
+		}
 		for(Link crumb:stack) {
 			cmps.add(crumb);
 		}
@@ -241,7 +247,12 @@ public class BreadcrumbedStackedPanel extends Panel implements StackedPanel, Bre
 	}
 	
 	private void setContent(Controller ctrl) {
-		super.setContent(ctrl.getInitialComponent());
+		Component cmp = ctrl.getInitialComponent();
+		if(cmp == this) {
+			log.error("Set itself as content is forbidden");
+			throw new AssertException("Set itself as content is forbidden");
+		}
+		super.setContent(cmp);
 	}
 	
 	/**
diff --git a/src/main/java/org/olat/core/gui/control/_spring/sitedefContext.xml b/src/main/java/org/olat/core/gui/control/_spring/sitedefContext.xml
index 1c3379ab8f69a62c409955df3bd4e05297f34b81..e134eb6643ef18b1c1e1ada5e1bee56a5e2f6766 100644
--- a/src/main/java/org/olat/core/gui/control/_spring/sitedefContext.xml
+++ b/src/main/java/org/olat/core/gui/control/_spring/sitedefContext.xml
@@ -72,11 +72,6 @@
 	   <property name="enabled" value="${guidemo.enabled}"/>
 	</bean>
 	
-	<bean id="olatsites_home" class="org.olat.home.HomeSiteDef">
-	   <property name="order" value="25" />
-	   <property name="enabled" value="true"/>
-	</bean>
-	
 	<!--  security callback -->
 	<bean id="adminSiteSecurityCallback" class="org.olat.core.gui.control.navigation.callback.AdminSecurityCallback"/>
 	
diff --git a/src/main/java/org/olat/home/HomeMainController.java b/src/main/java/org/olat/home/HomeMainController.java
index 41935dddde258c51ff34bc7a6405fbe3bb1c75c6..35b85ddc752a7429dcde951cf2c8c8958583475d 100644
--- a/src/main/java/org/olat/home/HomeMainController.java
+++ b/src/main/java/org/olat/home/HomeMainController.java
@@ -26,11 +26,13 @@ import org.olat.core.extensions.ExtManager;
 import org.olat.core.extensions.action.GenericActionExtension;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.Component;
+import org.olat.core.gui.components.panel.Panel;
 import org.olat.core.gui.components.stack.BreadcrumbPanelAware;
 import org.olat.core.gui.components.stack.BreadcrumbedStackedPanel;
 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.gui.control.controller.BasicController;
 import org.olat.core.gui.control.controller.MainLayoutBasicController;
 import org.olat.core.gui.control.generic.dtabs.Activateable2;
 import org.olat.core.id.OLATResourceable;
@@ -57,7 +59,10 @@ public class HomeMainController extends MainLayoutBasicController implements Act
 		stackPanel = new BreadcrumbedStackedPanel("homeStackPanel", getTranslator(), this);
 		stackPanel.setInvisibleCrumb(2);
 		putInitialPanel(stackPanel);
-		stackPanel.pushController("main", this);
+		
+		RootController root = new RootController(ureq, wControl);
+		listenTo(root);
+		stackPanel.pushController("main", root);
 	}
 	
 	@Override
@@ -116,4 +121,22 @@ public class HomeMainController extends MainLayoutBasicController implements Act
 		}
 		return ctrl;
 	}
+	
+	public static class RootController extends BasicController {
+
+		public RootController(UserRequest ureq, WindowControl wControl) {
+			super(ureq, wControl);
+			putInitialPanel(new Panel("empty"));
+		}
+
+		@Override
+		protected void event(UserRequest ureq, Component source, Event event) {
+			//
+		}
+
+		@Override
+		protected void doDispose() {
+			//
+		}
+	}
 }
diff --git a/src/main/java/org/olat/home/HomeSiteDef.java b/src/main/java/org/olat/home/HomeSiteDef.java
deleted file mode 100644
index a54a2585e9530191de8b090dd7ac287be3eca440..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/home/HomeSiteDef.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/**
- * <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.home;
-
-import org.olat.core.gui.UserRequest;
-import org.olat.core.gui.control.WindowControl;
-import org.olat.core.gui.control.navigation.AbstractSiteDefinition;
-import org.olat.core.gui.control.navigation.SiteConfiguration;
-import org.olat.core.gui.control.navigation.SiteDefinition;
-import org.olat.core.gui.control.navigation.SiteInstance;
-
-/**
- * <h3>Description:</h3>
- * <p>
- * Site Def. for a minimal Home Initial Date: 10.05.2010 <br>
- * 
- * @author Roman Haag, roman.haag@frentix.com, www.frentix.com
- */
-public class HomeSiteDef extends AbstractSiteDefinition implements SiteDefinition {
-
-	@Override
-	public SiteInstance createSite(UserRequest ureq, WindowControl wControl, SiteConfiguration config) {
-		if(ureq.getUserSession().getRoles().isInvitee()) {
-			return null;
-		}
-		return new HomeSite(this);
-	}
-}