Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Manipulators/MultiVRPSolutionManipulator.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Manipulators/MultiVRPSolutionManipulator.cs	(revision 7852)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Manipulators/MultiVRPSolutionManipulator.cs	(revision 7855)
@@ -84,5 +84,5 @@
       foreach (IOperator op in operators) {
         if (op is IVRPManipulator && !(op is MultiVRPSolutionManipulator)) {
-          Operators.Add(op.Clone() as IVRPManipulator, true);
+          Operators.Add(op.Clone() as IVRPManipulator, !(op is IVRPLocalSearchManipulator));
         }
       }
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/PermutationEncoding.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/PermutationEncoding.cs	(revision 7852)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/PermutationEncoding.cs	(revision 7855)
@@ -36,5 +36,5 @@
     public abstract List<Tour> GetTours();
 
-    public int GetTourIndex(Tour tour) {
+    public virtual int GetTourIndex(Tour tour) {
       int index = -1;
 
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/ShakingOperators/VehicleRoutingShakingOperator.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/ShakingOperators/VehicleRoutingShakingOperator.cs	(revision 7852)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/ShakingOperators/VehicleRoutingShakingOperator.cs	(revision 7855)
@@ -71,5 +71,5 @@
      
       foreach (IVRPManipulator shaker in ApplicationManager.Manager.GetInstances<IVRPManipulator>().OrderBy(x => x.Name))
-        if (!(shaker is MultiVRPSolutionManipulator)) Operators.Add(shaker);
+        if (!(shaker is MultiVRPSolutionManipulator)) Operators.Add(shaker, !(shaker is IVRPLocalSearchManipulator));
     }
 
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Manipulators/PotvinLocalSearchManipulator.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Manipulators/PotvinLocalSearchManipulator.cs	(revision 7852)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Manipulators/PotvinLocalSearchManipulator.cs	(revision 7855)
@@ -27,9 +27,10 @@
 using System.Collections.Generic;
 using HeuristicLab.Common;
+using HeuristicLab.Problems.VehicleRouting.Interfaces;
 
 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Potvin {
   [Item("PotvinLocalSearchManipulator", "The LSM operator which manipulates a VRP representation.  It is implemented as described in Potvin, J.-Y. and Bengio, S. (1996). The Vehicle Routing Problem with Time Windows - Part II: Genetic Search. INFORMS Journal of Computing, 8:165–172.")]
   [StorableClass]
-  public sealed class PotvinLocalSearchManipulator : PotvinManipulator {
+  public sealed class PotvinLocalSearchManipulator : PotvinManipulator, IVRPLocalSearchManipulator {
     public IValueParameter<IntValue> Iterations {
       get { return (IValueParameter<IntValue>)Parameters["Iterations"]; }
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Prins/Manipulators/PrinsLSManipulator.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Prins/Manipulators/PrinsLSManipulator.cs	(revision 7852)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Prins/Manipulators/PrinsLSManipulator.cs	(revision 7855)
@@ -27,9 +27,10 @@
 using System.Collections.Generic;
 using HeuristicLab.Common;
+using HeuristicLab.Problems.VehicleRouting.Interfaces;
 
 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Prins {
   [Item("PrinsLSManipulator", "An operator which manipulates a VRP representation by using the Prins local search.  It is implemented as described in Prins, C. (2004). A simple and effective evolutionary algorithm for the vehicle routing problem. Computers & Operations Research, 12:1985-2002.")]
   [StorableClass]
-  public abstract class PrinsLSManipulator : PrinsManipulator {
+  public abstract class PrinsLSManipulator : PrinsManipulator, IVRPLocalSearchManipulator {
     public IValueParameter<IntValue> Iterations {
       get { return (IValueParameter<IntValue>)Parameters["Iterations"]; }
