Index: branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/AlpsGeneticAlgorithm.cs
===================================================================
--- branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/AlpsGeneticAlgorithm.cs	(revision 12068)
+++ branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/AlpsGeneticAlgorithm.cs	(revision 12071)
@@ -24,4 +24,5 @@
 using System.Linq;
 using HeuristicLab.Analysis;
+using HeuristicLab.Collections;
 using HeuristicLab.Common;
 using HeuristicLab.Core;
@@ -60,9 +61,9 @@
       get { return (IValueParameter<BoolValue>)Parameters["SetSeedRandomly"]; }
     }
-    private IValueParameter<MultiAnalyzer> AnalyzerParameter {
-      get { return (IValueParameter<MultiAnalyzer>)Parameters["Analyzer"]; }
-    }
-    private IValueParameter<MultiAnalyzer> LayerAnalyzerParameter {
-      get { return (IValueParameter<MultiAnalyzer>)Parameters["LayerAnalyzer"]; }
+    private IFixedValueParameter<MultiAnalyzer> AnalyzerParameter {
+      get { return (IFixedValueParameter<MultiAnalyzer>)Parameters["Analyzer"]; }
+    }
+    private IFixedValueParameter<MultiAnalyzer> LayerAnalyzerParameter {
+      get { return (IFixedValueParameter<MultiAnalyzer>)Parameters["LayerAnalyzer"]; }
     }
     private IValueParameter<IntValue> NumberOfLayersParameter {
@@ -124,9 +125,7 @@
     public MultiAnalyzer Analyzer {
       get { return AnalyzerParameter.Value; }
-      set { AnalyzerParameter.Value = value; }
     }
     public MultiAnalyzer LayerAnalyzer {
       get { return LayerAnalyzerParameter.Value; }
-      set { LayerAnalyzerParameter.Value = value; }
     }
     public IntValue NumberOfLayers {
@@ -227,6 +226,6 @@
       Parameters.Add(new ValueParameter<IntValue>("Seed", "The random seed used to initialize the new pseudo random number generator.", new IntValue(0)));
       Parameters.Add(new ValueParameter<BoolValue>("SetSeedRandomly", "True if the random seed should be set to a random value, otherwise false.", new BoolValue(true)));
-      Parameters.Add(new ValueParameter<MultiAnalyzer>("Analyzer", "The operator used to analyze the islands.", new MultiAnalyzer()));
-      Parameters.Add(new ValueParameter<MultiAnalyzer>("LayerAnalyzer", "The operator used to analyze each layer.", new MultiAnalyzer()));
+      Parameters.Add(new FixedValueParameter<MultiAnalyzer>("Analyzer", "The operator used to analyze the islands.", new MultiAnalyzer()));
+      Parameters.Add(new FixedValueParameter<MultiAnalyzer>("LayerAnalyzer", "The operator used to analyze each layer.", new MultiAnalyzer()));
       Parameters.Add(new ValueParameter<IntValue>("NumberOfLayers", "The number of layers.", new IntValue(10)));
       Parameters.Add(new ValueParameter<IntArray>("PopulationSize", "The size of the population of solutions each layer.", new IntArray(new[] { 100 })));
@@ -407,4 +406,24 @@
       RecalculateAgeLimits();
     }
+    private void AnalyzerOperators_ItemsAdded(object sender, CollectionItemsChangedEventArgs<IndexedItem<IAnalyzer>> e) {
+      foreach (var analyzer in e.Items) {
+        foreach (var parameter in analyzer.Value.Parameters.OfType<IScopeTreeLookupParameter>()) {
+          parameter.Depth = 2;
+        }
+      }
+    }
+    private void LayerAnalyzerOperators_ItemsAdded(object sender, CollectionItemsChangedEventArgs<IndexedItem<IAnalyzer>> e) {
+      foreach (var analyzer in e.Items) {
+        IParameter resultParameter;
+        if (analyzer.Value.Parameters.TryGetValue("Results", out resultParameter)) {
+          var lookupParameter = resultParameter as ILookupParameter<ResultCollection>;
+          if (lookupParameter != null)
+            lookupParameter.ActualName = "LayerResults";
+        }
+        foreach (var parameter in analyzer.Value.Parameters.OfType<IScopeTreeLookupParameter>()) {
+          parameter.Depth = 1;
+        }
+      }
+    }
     #endregion
 
@@ -423,4 +442,6 @@
       NumberOfLayersParameter.ValueChanged += NumberOfLayersParameter_ValueChanged;
       NumberOfLayers.ValueChanged += NumberOfLayers_ValueChanged;
+      Analyzer.Operators.ItemsAdded += AnalyzerOperators_ItemsAdded;
+      LayerAnalyzer.Operators.ItemsAdded += LayerAnalyzerOperators_ItemsAdded;
     }
     private void ParameterizeSolutionsCreator() {
@@ -546,6 +567,4 @@
       if (Problem != null) {
         foreach (var analyzer in Problem.Operators.OfType<IAnalyzer>()) {
-          foreach (var parameter in analyzer.Parameters.OfType<IScopeTreeLookupParameter>())
-            parameter.Depth = 2;
           Analyzer.Operators.Add(analyzer, analyzer.EnabledByDefault);
         }
Index: branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/AlpsGeneticAlgorithmMainLoop.cs
===================================================================
--- branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/AlpsGeneticAlgorithmMainLoop.cs	(revision 12068)
+++ branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/AlpsGeneticAlgorithmMainLoop.cs	(revision 12071)
@@ -113,5 +113,5 @@
 
       layerVariableCreator.CollectedValues.Add(new ValueParameter<IntValue>("LayerEvaluatedSolutions"));
-      layerVariableCreator.CollectedValues.Add(new ValueParameter<ResultCollection>("Results"));
+      layerVariableCreator.CollectedValues.Add(new ValueParameter<ResultCollection>("LayerResults"));
       layerVariableCreator.Successor = initLayerAnalyzerPlaceholder;
 
@@ -123,5 +123,5 @@
 
       resultsCollector.CollectedValues.Add(new LookupParameter<IntValue>("Generations"));
-      resultsCollector.CollectedValues.Add(new ScopeTreeLookupParameter<ResultCollection>("LayerResults", "Result set for each layer", "Results"));
+      resultsCollector.CollectedValues.Add(new ScopeTreeLookupParameter<ResultCollection>("LayerResults", "Result set for each layer", "LayerResults"));
       resultsCollector.CollectedValues.Add(new LookupParameter<IntValue>("OpenLayers"));
       resultsCollector.CopyValue = new BoolValue(false);
Index: branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/LayerUpdator.cs
===================================================================
--- branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/LayerUpdator.cs	(revision 12068)
+++ branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/LayerUpdator.cs	(revision 12071)
@@ -138,5 +138,5 @@
       incrEvaluatedSolutionsForNewLayer.Successor = mainOperator;
 
-      newResultCollectionAssigner.LeftSideParameter.ActualName = "Results";
+      newResultCollectionAssigner.LeftSideParameter.ActualName = "LayerResults";
       newResultCollectionAssigner.RightSideParameter.Value = new ResultCollection();
       newResultCollectionAssigner.Successor = mainOperator;
@@ -147,5 +147,5 @@
       incrOpenLayers.Successor = newLayerResultsCollector;
 
-      newLayerResultsCollector.CollectedValues.Add(new ScopeTreeLookupParameter<ResultCollection>("LayerResults", "Result set for each layer", "Results"));
+      newLayerResultsCollector.CollectedValues.Add(new ScopeTreeLookupParameter<ResultCollection>("LayerResults", "Result set for each layer", "LayerResults"));
       newLayerResultsCollector.CopyValue = new BoolValue(false);
       newLayerResultsCollector.Successor = null;
