Index: /branches/Breadcrumbs/HeuristicLab.Clients.Access.Administration/3.3/Views/RoleView.cs
===================================================================
--- /branches/Breadcrumbs/HeuristicLab.Clients.Access.Administration/3.3/Views/RoleView.cs	(revision 10105)
+++ /branches/Breadcrumbs/HeuristicLab.Clients.Access.Administration/3.3/Views/RoleView.cs	(revision 10106)
@@ -47,5 +47,5 @@
 
     private void roleNameTextBox_TextChanged(object sender, System.EventArgs e) {
-      if (Content.Name != roleNameTextBox.Text)
+      if (Content != null && Content.Name != roleNameTextBox.Text)
         Content.Name = roleNameTextBox.Text;
     }
Index: /branches/Breadcrumbs/HeuristicLab.Clients.Access.Administration/3.3/Views/UserGroupView.cs
===================================================================
--- /branches/Breadcrumbs/HeuristicLab.Clients.Access.Administration/3.3/Views/UserGroupView.cs	(revision 10105)
+++ /branches/Breadcrumbs/HeuristicLab.Clients.Access.Administration/3.3/Views/UserGroupView.cs	(revision 10106)
@@ -69,5 +69,5 @@
 
     private void groupNameTextBox_TextChanged(object sender, System.EventArgs e) {
-      if (Content.Name != this.groupNameTextBox.Text)
+      if (Content != null && Content.Name != this.groupNameTextBox.Text)
         Content.Name = this.groupNameTextBox.Text;
     }
Index: /branches/Breadcrumbs/HeuristicLab.Clients.Access.Administration/3.3/Views/UserView.cs
===================================================================
--- /branches/Breadcrumbs/HeuristicLab.Clients.Access.Administration/3.3/Views/UserView.cs	(revision 10105)
+++ /branches/Breadcrumbs/HeuristicLab.Clients.Access.Administration/3.3/Views/UserView.cs	(revision 10106)
@@ -72,15 +72,15 @@
 
     private void fullNameTextBox_TextChanged(object sender, System.EventArgs e) {
-      if (Content.FullName != fullNameTextBox.Text)
+      if (Content != null && Content.FullName != fullNameTextBox.Text)
         Content.FullName = fullNameTextBox.Text;
     }
 
     private void userNameTextBox_TextChanged(object sender, System.EventArgs e) {
-      if (Content.UserName != userNameTextBox.Text)
+      if (Content != null && Content.UserName != userNameTextBox.Text)
         Content.UserName = userNameTextBox.Text;
     }
 
     private void emailTextBox_TextChanged(object sender, System.EventArgs e) {
-      if (Content.Email != emailTextBox.Text)
+      if (Content != null && Content.Email != emailTextBox.Text)
         Content.Email = emailTextBox.Text;
     }
Index: /branches/Breadcrumbs/HeuristicLab.Core.Views/3.3/ItemCollectionView.Designer.cs
===================================================================
--- /branches/Breadcrumbs/HeuristicLab.Core.Views/3.3/ItemCollectionView.Designer.cs	(revision 10105)
+++ /branches/Breadcrumbs/HeuristicLab.Core.Views/3.3/ItemCollectionView.Designer.cs	(revision 10106)
@@ -180,5 +180,4 @@
       this.viewHost.Caption = "View";
       this.viewHost.Content = null;
-      this.viewHost.IsValidOutermostViewhost = false;
       this.viewHost.Location = new System.Drawing.Point(6, 19);
       this.viewHost.Name = "viewHost";
Index: /branches/Breadcrumbs/HeuristicLab.Core.Views/3.3/ItemListView.Designer.cs
===================================================================
--- /branches/Breadcrumbs/HeuristicLab.Core.Views/3.3/ItemListView.Designer.cs	(revision 10105)
+++ /branches/Breadcrumbs/HeuristicLab.Core.Views/3.3/ItemListView.Designer.cs	(revision 10106)
@@ -193,5 +193,4 @@
       this.viewHost.Caption = "View";
       this.viewHost.Content = null;
-      this.viewHost.IsValidOutermostViewhost = false;
       this.viewHost.Location = new System.Drawing.Point(6, 19);
       this.viewHost.Name = "viewHost";
Index: /branches/Breadcrumbs/HeuristicLab.MainForm.WindowsForms/3.3/Controls/ViewHost.cs
===================================================================
--- /branches/Breadcrumbs/HeuristicLab.MainForm.WindowsForms/3.3/Controls/ViewHost.cs	(revision 10105)
+++ /branches/Breadcrumbs/HeuristicLab.MainForm.WindowsForms/3.3/Controls/ViewHost.cs	(revision 10106)
@@ -22,5 +22,4 @@
 using System;
 using System.Collections.Generic;
-using System.ComponentModel;
 using System.Drawing;
 using System.Linq;
@@ -42,5 +41,4 @@
       viewsLabel.Visible = false;
       viewsLabelVisible = true;
-      IsValidOutermostViewhost = true;
 
       breadcrumbControl.ViewHost = this;
@@ -61,7 +59,4 @@
 
     public bool HotlinkingEnabled { get; set; }
-
-    [DefaultValue(true)]
-    public bool IsValidOutermostViewhost { get; set; }
 
     private IContentView cachedView;
@@ -371,8 +366,10 @@
       if (!newCrumbs.Any()) return;
       var ll = new LinkedList<IContent>();
-      foreach (var c in oldCrumbs) {
-        if (c != newCrumbs.First())
-          ll.AddLast(c);
-        else break;
+      if (newCrumbs.Contains(oldCrumbs.LastOrDefault())) {
+        foreach (var c in oldCrumbs) {
+          if (c != newCrumbs.First())
+            ll.AddLast(c);
+          else break;
+        }
       }
       foreach (var c in newCrumbs)
@@ -382,9 +379,6 @@
 
     private void PerformOutermostViewHostDetection() {
-      if (!IsValidOutermostViewhost) return;
-      var mainForm = MainFormManager.GetMainForm<MainForm>();
-      if (mainForm == null) return; // needed for designer
-      var outermostViewHost = mainForm.GetOutermostControlOfType<ViewHost>(this);
-      viewContextMenuStrip.ShowBreadcrumbsToolStripMenuItem.Checked = outermostViewHost == this;
+      var parentContentViews = GetParentViewsOfType<ContentView>();
+      viewContextMenuStrip.ShowBreadcrumbsToolStripMenuItem.Checked = !parentContentViews.Any();
     }
     #endregion
Index: /branches/Breadcrumbs/HeuristicLab.MainForm.WindowsForms/3.3/Views/View.cs
===================================================================
--- /branches/Breadcrumbs/HeuristicLab.MainForm.WindowsForms/3.3/Views/View.cs	(revision 10105)
+++ /branches/Breadcrumbs/HeuristicLab.MainForm.WindowsForms/3.3/Views/View.cs	(revision 10106)
@@ -21,4 +21,5 @@
 
 using System;
+using System.Collections.Generic;
 using System.Linq;
 using System.Reflection;
@@ -261,4 +262,9 @@
         ((Control)this).ResumeRepaint(refresh);
     }
+
+    public IEnumerable<T> GetParentViewsOfType<T>() where T : View {
+      for (var view = Parent; view != null; view = view.Parent)
+        if (view is View) yield return view as T;
+    }
   }
 }
Index: /branches/Breadcrumbs/HeuristicLab.Operators.Views.GraphVisualization.Views/3.3/OperatorGraphView.Designer.cs
===================================================================
--- /branches/Breadcrumbs/HeuristicLab.Operators.Views.GraphVisualization.Views/3.3/OperatorGraphView.Designer.cs	(revision 10105)
+++ /branches/Breadcrumbs/HeuristicLab.Operators.Views.GraphVisualization.Views/3.3/OperatorGraphView.Designer.cs	(revision 10106)
@@ -235,5 +235,4 @@
                   | System.Windows.Forms.AnchorStyles.Right)));
       this.detailsViewHost.Content = null;
-      this.detailsViewHost.IsValidOutermostViewhost = false;
       this.detailsViewHost.Location = new System.Drawing.Point(3, 16);
       this.detailsViewHost.Name = "detailsViewHost";
Index: /branches/Breadcrumbs/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionView.Designer.cs
===================================================================
--- /branches/Breadcrumbs/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionView.Designer.cs	(revision 10105)
+++ /branches/Breadcrumbs/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionView.Designer.cs	(revision 10106)
@@ -216,5 +216,4 @@
       this.viewHost.Caption = "View";
       this.viewHost.Content = null;
-      this.viewHost.IsValidOutermostViewhost = false;
       this.viewHost.Location = new System.Drawing.Point(6, 19);
       this.viewHost.Name = "viewHost";
Index: /branches/Breadcrumbs/HeuristicLab.Optimization.Views/3.3/RunView.Designer.cs
===================================================================
--- /branches/Breadcrumbs/HeuristicLab.Optimization.Views/3.3/RunView.Designer.cs	(revision 10105)
+++ /branches/Breadcrumbs/HeuristicLab.Optimization.Views/3.3/RunView.Designer.cs	(revision 10106)
@@ -178,5 +178,4 @@
       this.viewHost.Content = null;
       this.viewHost.Enabled = false;
-      this.viewHost.IsValidOutermostViewhost = false;
       this.viewHost.Location = new System.Drawing.Point(6, 19);
       this.viewHost.Name = "viewHost";
