Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/PickupDelivery/PDExchange/PotvinPDExchangeExhaustiveMoveGenerator.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/PickupDelivery/PDExchange/PotvinPDExchangeExhaustiveMoveGenerator.cs	(revision 6851)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/PickupDelivery/PDExchange/PotvinPDExchangeExhaustiveMoveGenerator.cs	(revision 6856)
@@ -67,7 +67,7 @@
                   if (pdp == null || pdp.GetDemand(city2) >= 0) {
                     bool valid = pdp == null ||
-                      (pdp.PickupDeliveryLocation[city2] != pdp.PickupDeliveryLocation[city1] &&
-                       pdp.PickupDeliveryLocation[city2] != city1 &&
-                       pdp.PickupDeliveryLocation[city1] != city2);
+                      (pdp.GetPickupDeliveryLocation(city2) != pdp.GetPickupDeliveryLocation(city1) &&
+                       pdp.GetPickupDeliveryLocation(city2) != city1 &&
+                       pdp.GetPickupDeliveryLocation(city1) != city2);
 
                     if (valid) {
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/PickupDelivery/PDExchange/PotvinPDExchangeMoveMaker.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/PickupDelivery/PDExchange/PotvinPDExchangeMoveMaker.cs	(revision 6851)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/PickupDelivery/PDExchange/PotvinPDExchangeMoveMaker.cs	(revision 6856)
@@ -68,12 +68,11 @@
 
       if (problemInstance is IPickupAndDeliveryProblemInstance) {
-        IntArray pickupLocation =
-          (problemInstance as IPickupAndDeliveryProblemInstance).PickupDeliveryLocation;
+        IPickupAndDeliveryProblemInstance pdp = problemInstance as IPickupAndDeliveryProblemInstance;
 
-        int location = pickupLocation[move.City];
+        int location = pdp.GetPickupDeliveryLocation(move.City);
         Tour oldTour2 = solution.Tours.Find(t => t.Stops.Contains(location));
         oldTour2.Stops.Remove(location);
 
-        location = pickupLocation[move.Replaced];
+        location = pdp.GetPickupDeliveryLocation(move.Replaced);
         oldTour2 = solution.Tours.Find(t => t.Stops.Contains(location));
 
@@ -81,6 +80,6 @@
         tour.Stops.Remove(move.Replaced);
 
-        PotvinPDRearrangeMoveMaker.InsertPair(solution, tour, move.City, pickupLocation[move.City], problemInstance);
-        PotvinPDRearrangeMoveMaker.InsertPair(solution, oldTour, move.Replaced, pickupLocation[move.Replaced], problemInstance);
+        PotvinPDRearrangeMoveMaker.InsertPair(solution, tour, move.City, pdp.GetPickupDeliveryLocation(move.City), problemInstance);
+        PotvinPDRearrangeMoveMaker.InsertPair(solution, oldTour, move.Replaced, pdp.GetPickupDeliveryLocation(move.Replaced), problemInstance);
       } else {
         tour.Stops.Remove(move.Replaced);
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/PickupDelivery/PDExchange/PotvinPDExchangeSingleMoveGenerator.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/PickupDelivery/PDExchange/PotvinPDExchangeSingleMoveGenerator.cs	(revision 6851)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/PickupDelivery/PDExchange/PotvinPDExchangeSingleMoveGenerator.cs	(revision 6856)
@@ -85,7 +85,7 @@
           if (pdp == null ||
             (pdp.GetDemand(stop) >= 0 &&
-             pdp.PickupDeliveryLocation[stop] != pdp.PickupDeliveryLocation[city] &&
-             pdp.PickupDeliveryLocation[stop] != city &&
-             pdp.PickupDeliveryLocation[city] != stop))
+            pdp.GetPickupDeliveryLocation(stop) != pdp.GetPickupDeliveryLocation(city) &&
+            pdp.GetPickupDeliveryLocation(stop) != city &&
+            pdp.GetPickupDeliveryLocation(city) != stop))
             tourCities.Add(stop);
         }
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/PickupDelivery/PDRearrange/PotvinPDRearrangeMoveMaker.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/PickupDelivery/PDRearrange/PotvinPDRearrangeMoveMaker.cs	(revision 6851)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/PickupDelivery/PDRearrange/PotvinPDRearrangeMoveMaker.cs	(revision 6856)
@@ -97,5 +97,5 @@
       IPickupAndDeliveryProblemInstance pdp = problemInstance as IPickupAndDeliveryProblemInstance;
       if (pdp != null) {
-        int location = pdp.PickupDeliveryLocation[move.City];
+        int location = pdp.GetPickupDeliveryLocation(move.City);
         Tour tour2 = solution.Tours.Find(t => t.Stops.Contains(location));
         int position2 = tour2.Stops.IndexOf(location);
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/PickupDelivery/PDShift/PotvinPDShiftMoveMaker.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/PickupDelivery/PDShift/PotvinPDShiftMoveMaker.cs	(revision 6851)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/PickupDelivery/PDShift/PotvinPDShiftMoveMaker.cs	(revision 6856)
@@ -68,12 +68,11 @@
 
       if (problemInstance is IPickupAndDeliveryProblemInstance) {
-        IntArray pickupLocation =
-          (problemInstance as IPickupAndDeliveryProblemInstance).PickupDeliveryLocation;
-
-        int location = pickupLocation[move.City];
+        IPickupAndDeliveryProblemInstance pdp = problemInstance as IPickupAndDeliveryProblemInstance;
+        
+        int location = pdp.GetPickupDeliveryLocation(move.City);
         Tour oldTour2 = solution.Tours.Find(t => t.Stops.Contains(location));
         oldTour2.Stops.Remove(location);
 
-        PotvinPDRearrangeMoveMaker.InsertPair(solution, tour, move.City, pickupLocation[move.City], problemInstance);
+        PotvinPDRearrangeMoveMaker.InsertPair(solution, tour, move.City, location, problemInstance);
       } else {
         int place = solution.FindBestInsertionPlace(tour, move.City);
