Index: branches/ScatterSearch/HeuristicLab.Algorithms.ScatterSearch/3.3/Knapsack/KnapsackMultipleGuidesPathRelinker.cs
===================================================================
--- branches/ScatterSearch/HeuristicLab.Algorithms.ScatterSearch/3.3/Knapsack/KnapsackMultipleGuidesPathRelinker.cs	(revision 7776)
+++ branches/ScatterSearch/HeuristicLab.Algorithms.ScatterSearch/3.3/Knapsack/KnapsackMultipleGuidesPathRelinker.cs	(revision 7778)
@@ -79,6 +79,6 @@
 
     protected override ItemArray<IItem> Relink(ItemArray<IItem> parents, PercentValue n) {
-      if (parents.Length != 2)
-        throw new ArgumentException("The number of parents is not equal to 2.");
+      if (parents.Length < 2)
+        throw new ArgumentException("The number of parents is smaller than 2.");
       return Apply(parents[0], parents.Skip(1).ToArray(), n);
     }
Index: branches/ScatterSearch/HeuristicLab.Algorithms.ScatterSearch/3.3/ScatterSearchMainLoop.cs
===================================================================
--- branches/ScatterSearch/HeuristicLab.Algorithms.ScatterSearch/3.3/ScatterSearchMainLoop.cs	(revision 7776)
+++ branches/ScatterSearch/HeuristicLab.Algorithms.ScatterSearch/3.3/ScatterSearchMainLoop.cs	(revision 7778)
@@ -28,4 +28,5 @@
 using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Selection;
 
 namespace HeuristicLab.Algorithms.ScatterSearch {
@@ -199,4 +200,5 @@
       ConditionalBranch terminateBranch = new ConditionalBranch();
       IntCounter interationsCounter = new IntCounter();
+      MergingReducer mergingReducer = new MergingReducer();
       OffspringProcessor offspringProcessor = new OffspringProcessor();
       Placeholder analyzer = new Placeholder();
@@ -209,4 +211,5 @@
       ResultsCollector resultsCollector = new ResultsCollector();
       ReferenceSetUpdateMethod referenceSetUpdateMethod = new ReferenceSetUpdateMethod();
+      RightSelector rightSelector = new RightSelector();
       SolutionPoolUpdateMethod solutionPoolUpdateMethod = new SolutionPoolUpdateMethod();
       SolutionsCreator solutionsCreator = new SolutionsCreator();
@@ -267,5 +270,9 @@
       interationsCounter.Successor = resultsCollector;
 
-      offspringProcessor.Successor = subScopesProcessor2;
+      offspringProcessor.Successor = rightSelector;
+
+      rightSelector.NumberOfSelectedSubScopesParameter.Value = new IntValue(1);
+      rightSelector.CopySelected = new BoolValue(false);
+      rightSelector.Successor = subScopesProcessor2;
 
       analyzer.Name = "Analyzer";
@@ -307,7 +314,6 @@
       subScopesProcessor2.DepthParameter.Value = new IntValue(1);
       subScopesProcessor2.Operators.Add(new EmptyOperator());
-      subScopesProcessor2.Operators.Add(new EmptyOperator());
       subScopesProcessor2.Operators.Add(uniformSubScopesProcessor2);
-      subScopesProcessor2.Successor = null;
+      subScopesProcessor2.Successor = mergingReducer;
 
       subScopesProcessor3.DepthParameter.Value = new IntValue(1);
@@ -320,5 +326,5 @@
       uniformSubScopesProcessor1.Successor = solutionPoolUpdateMethod;
 
-      uniformSubScopesProcessor2.DepthParameter.Value = new IntValue(1);
+      uniformSubScopesProcessor2.DepthParameter.Value = new IntValue(2);
       uniformSubScopesProcessor2.Operator = solutionImprover1;
       uniformSubScopesProcessor2.Successor = null;
Index: branches/ScatterSearch/HeuristicLab.Algorithms.ScatterSearch/3.3/TravelingSalesman/TravelingSalesmanMultipleGuidesPathRelinker.cs
===================================================================
--- branches/ScatterSearch/HeuristicLab.Algorithms.ScatterSearch/3.3/TravelingSalesman/TravelingSalesmanMultipleGuidesPathRelinker.cs	(revision 7776)
+++ branches/ScatterSearch/HeuristicLab.Algorithms.ScatterSearch/3.3/TravelingSalesman/TravelingSalesmanMultipleGuidesPathRelinker.cs	(revision 7778)
@@ -123,6 +123,6 @@
 
     protected override ItemArray<IItem> Relink(ItemArray<IItem> parents, PercentValue n) {
-      if (parents.Length != 2)
-        throw new ArgumentException("The number of parents is not equal to 2.");
+      if (parents.Length < 2)
+        throw new ArgumentException("The number of parents is smaller than 2.");
       return Apply(parents[0], parents.Skip(1).ToArray(), DistanceMatrix, n);
     }
