Index: /trunk/sources/HeuristicLab.Algorithms.DataAnalysis.Views/3.3/CrossValidationView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Algorithms.DataAnalysis.Views/3.3/CrossValidationView.cs	(revision 5419)
+++ /trunk/sources/HeuristicLab.Algorithms.DataAnalysis.Views/3.3/CrossValidationView.cs	(revision 5420)
@@ -107,8 +107,8 @@
         //The content must be stopped if no other view showing the content is available
         var optimizers = MainFormManager.MainForm.Views.OfType<IContentView>().Where(v => v != this).Select(v => v.Content).OfType<IOptimizer>();
-        //add nested optimizers
-        optimizers = optimizers.SelectMany(opt => opt.NestedOptimizers).Union(optimizers);
-
-        if (!optimizers.Contains(Content)) Content.Stop();
+        if (!optimizers.Contains(Content)) {
+          var nestedOptimizers = optimizers.SelectMany(opt => opt.NestedOptimizers);
+          if (!nestedOptimizers.Contains(Content)) Content.Stop();
+        }
       }
       base.OnClosed(e);
Index: /trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.3/CrossValidation.cs
===================================================================
--- /trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.3/CrossValidation.cs	(revision 5419)
+++ /trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.3/CrossValidation.cs	(revision 5420)
@@ -48,5 +48,4 @@
       algorithm = null;
       clonedAlgorithms = new ItemCollection<IAlgorithm>();
-      readOnlyClonedAlgorithms = null;
       results = new ResultCollection();
 
@@ -157,23 +156,7 @@
     [Storable]
     private ItemCollection<IAlgorithm> clonedAlgorithms;
-    private ReadOnlyItemCollection<IAlgorithm> readOnlyClonedAlgorithms;
-    public IItemCollection<IAlgorithm> ClonedAlgorithms {
-      get {
-        if (readOnlyClonedAlgorithms == null) readOnlyClonedAlgorithms = clonedAlgorithms.AsReadOnly();
-        return readOnlyClonedAlgorithms;
-      }
-    }
 
     public IEnumerable<IOptimizer> NestedOptimizers {
-      get {
-        if (Algorithm != null) yield return Algorithm;
-        if (clonedAlgorithms != null) {
-          foreach (IAlgorithm alg in ClonedAlgorithms) {
-            yield return alg;
-            foreach (IOptimizer nested in alg.NestedOptimizers)
-              yield return nested;
-          }
-        }
-      }
+      get { return Enumerable.Empty<IOptimizer>(); }
     }
 
@@ -316,5 +299,5 @@
     }
     private void PauseAllClonedAlgorithms() {
-      foreach (IAlgorithm clonedAlgorithm in ClonedAlgorithms) {
+      foreach (IAlgorithm clonedAlgorithm in clonedAlgorithms) {
         if (clonedAlgorithm.ExecutionState == ExecutionState.Started)
           clonedAlgorithm.Pause();
@@ -333,5 +316,5 @@
     }
     private void StopAllClonedAlgorithms() {
-      foreach (IAlgorithm clonedAlgorithm in ClonedAlgorithms) {
+      foreach (IAlgorithm clonedAlgorithm in clonedAlgorithms) {
         if (clonedAlgorithm.ExecutionState == ExecutionState.Started ||
             clonedAlgorithm.ExecutionState == ExecutionState.Paused)
@@ -360,5 +343,5 @@
     public void CollectResultValues(IDictionary<string, IItem> results) {
       Dictionary<string, List<double>> resultValues = new Dictionary<string, List<double>>();
-      IEnumerable<IRun> runs = ClonedAlgorithms.Select(alg => alg.Runs.FirstOrDefault()).Where(run => run != null);
+      IEnumerable<IRun> runs = clonedAlgorithms.Select(alg => alg.Runs.FirstOrDefault()).Where(run => run != null);
       IEnumerable<KeyValuePair<string, IItem>> resultCollections = runs.Where(x => x != null).SelectMany(x => x.Results).ToList();
 
Index: /trunk/sources/HeuristicLab.Optimization.Views/3.3/AlgorithmView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization.Views/3.3/AlgorithmView.cs	(revision 5419)
+++ /trunk/sources/HeuristicLab.Optimization.Views/3.3/AlgorithmView.cs	(revision 5420)
@@ -137,8 +137,8 @@
         //The content must be stopped if no other view showing the content is available
         var optimizers = MainFormManager.MainForm.Views.OfType<IContentView>().Where(v => v != this).Select(v => v.Content).OfType<IOptimizer>();
-        //add nested optimizers
-        optimizers = optimizers.SelectMany(opt => opt.NestedOptimizers).Union(optimizers);
-
-        if (!optimizers.Contains(Content)) Content.Stop();
+        if (!optimizers.Contains(Content)) {
+          var nestedOptimizers = optimizers.SelectMany(opt => opt.NestedOptimizers);
+          if (!nestedOptimizers.Contains(Content)) Content.Stop();
+        }
       }
       base.OnClosed(e);
Index: /trunk/sources/HeuristicLab.Optimization.Views/3.3/BatchRunView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization.Views/3.3/BatchRunView.cs	(revision 5419)
+++ /trunk/sources/HeuristicLab.Optimization.Views/3.3/BatchRunView.cs	(revision 5420)
@@ -113,8 +113,8 @@
         //The content must be stopped if no other view showing the content is available
         var optimizers = MainFormManager.MainForm.Views.OfType<IContentView>().Where(v => v != this).Select(v => v.Content).OfType<IOptimizer>();
-        //add nested optimizers
-        optimizers = optimizers.SelectMany(opt => opt.NestedOptimizers).Union(optimizers);
-
-        if (!optimizers.Contains(Content)) Content.Stop();
+        if (!optimizers.Contains(Content)) {
+          var nestedOptimizers = optimizers.SelectMany(opt => opt.NestedOptimizers);
+          if (!nestedOptimizers.Contains(Content)) Content.Stop();
+        }
       }
       base.OnClosed(e);
Index: /trunk/sources/HeuristicLab.Optimization.Views/3.3/ExperimentView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization.Views/3.3/ExperimentView.cs	(revision 5419)
+++ /trunk/sources/HeuristicLab.Optimization.Views/3.3/ExperimentView.cs	(revision 5420)
@@ -95,8 +95,8 @@
         //The content must be stopped if no other view showing the content is available
         var optimizers = MainFormManager.MainForm.Views.OfType<IContentView>().Where(v => v != this).Select(v => v.Content).OfType<IOptimizer>();
-        //add nested optimizers
-        optimizers = optimizers.SelectMany(opt => opt.NestedOptimizers).Union(optimizers);
-
-        if (!optimizers.Contains(Content)) Content.Stop();
+        if (!optimizers.Contains(Content)) {
+          var nestedOptimizers = optimizers.SelectMany(opt => opt.NestedOptimizers);
+          if (!nestedOptimizers.Contains(Content)) Content.Stop();
+        }
       }
       base.OnClosed(e);
