Index: branches/LearningClassifierSystems/HeuristicLab.Encodings.CombinedIntegerVectorEncoding/3.3/Manipulator/UniformOnePositionInConditionManipulator.cs
===================================================================
--- branches/LearningClassifierSystems/HeuristicLab.Encodings.CombinedIntegerVectorEncoding/3.3/Manipulator/UniformOnePositionInConditionManipulator.cs	(revision 9089)
+++ branches/LearningClassifierSystems/HeuristicLab.Encodings.CombinedIntegerVectorEncoding/3.3/Manipulator/UniformOnePositionInConditionManipulator.cs	(revision 9090)
@@ -46,5 +46,5 @@
 
     public static CombinedIntegerVector Manipulate(CombinedIntegerVector parent, CombinedIntegerVector child, int index) {
-      int max = child.Bounds[index % child.Bounds.Rows, 1];
+      int max = child.Bounds[index % child.Bounds.Rows, 1] - 1;
       if (child[index].Equals(max)) {
         child[index] = parent[index];
Index: branches/LearningClassifierSystems/HeuristicLab.Encodings.CombinedIntegerVectorEncoding/3.3/Manipulator/UniformSomePositionInConditionManipulator.cs
===================================================================
--- branches/LearningClassifierSystems/HeuristicLab.Encodings.CombinedIntegerVectorEncoding/3.3/Manipulator/UniformSomePositionInConditionManipulator.cs	(revision 9090)
+++ branches/LearningClassifierSystems/HeuristicLab.Encodings.CombinedIntegerVectorEncoding/3.3/Manipulator/UniformSomePositionInConditionManipulator.cs	(revision 9090)
@@ -0,0 +1,78 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Encodings.CombinedIntegerVectorEncoding {
+  public class UniformSomePositionInConditionManipulator : CombinedIntegerVectorManipulator {
+
+    public IValueLookupParameter<PercentValue> ProbabilityParameter {
+      get { return (IValueLookupParameter<PercentValue>)Parameters["Probability"]; }
+    }
+    public ILookupParameter<IItemSet<CombinedIntegerVector>> PossibleActionsParameter {
+      get { return (ILookupParameter<IItemSet<CombinedIntegerVector>>)Parameters["PossibleActions"]; }
+    }
+
+    [StorableConstructor]
+    protected UniformSomePositionInConditionManipulator(bool deserializing) : base(deserializing) { }
+    protected UniformSomePositionInConditionManipulator(UniformSomePositionInConditionManipulator original, Cloner cloner)
+      : base(original, cloner) {
+    }
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new UniformSomePositionInConditionManipulator(this, cloner);
+    }
+    public UniformSomePositionInConditionManipulator()
+      : base() {
+      Parameters.Add(new ValueLookupParameter<PercentValue>("Probability", "The probability for each dimension to be manipulated.", new PercentValue(0.5)));
+      Parameters.Add(new LookupParameter<IItemSet<CombinedIntegerVector>>("PossibleActions"));
+    }
+
+    protected override CombinedIntegerVector Manipulate(IRandom random, CombinedIntegerVector parent, CombinedIntegerVector child) {
+      return Manipulate(random, parent, child, ProbabilityParameter.ActualValue.Value, PossibleActionsParameter.ActualValue);
+    }
+
+    public static CombinedIntegerVector Manipulate(IRandom random, CombinedIntegerVector parent, CombinedIntegerVector child, double probability, IItemSet<CombinedIntegerVector> possibleActions) {
+      child = ManipulateCondition(random, parent, child, probability);
+      return ManipulateAction(random, parent, child, probability, possibleActions);
+    }
+
+    public static CombinedIntegerVector ManipulateCondition(IRandom random, CombinedIntegerVector parent, CombinedIntegerVector child, double probability) {
+      int conditionLength = child.Length - child.ActionLength;
+      for (int index = 0; index < child.Length - child.ActionLength; index++) {
+        if (random.NextDouble() < probability) {
+          child = UniformOnePositionInConditionManipulator.Manipulate(parent, child, index);
+        }
+      }
+      return child;
+    }
+
+    public static CombinedIntegerVector ManipulateAction(IRandom random, CombinedIntegerVector parent, CombinedIntegerVector child, double probability, IItemSet<CombinedIntegerVector> possibleActions) {
+      if (child.ActionLength > 0 && random.NextDouble() < probability) {
+        UniformActionManipulator.Manipulate(random, parent, child, possibleActions);
+      }
+      return child;
+    }
+  }
+}
Index: branches/LearningClassifierSystems/HeuristicLab.Encodings.CombinedIntegerVectorEncoding/3.3/Manipulator/UniformSomePositionsManipulator.cs
===================================================================
--- branches/LearningClassifierSystems/HeuristicLab.Encodings.CombinedIntegerVectorEncoding/3.3/Manipulator/UniformSomePositionsManipulator.cs	(revision 9089)
+++ 	(revision )
@@ -1,69 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using HeuristicLab.Common;
-using HeuristicLab.Core;
-using HeuristicLab.Data;
-using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-
-namespace HeuristicLab.Encodings.CombinedIntegerVectorEncoding.Manipulator {
-  public class UniformSomePositionsManipulator : CombinedIntegerVectorManipulator {
-
-    public IValueLookupParameter<PercentValue> ProbabilityParameter {
-      get { return (IValueLookupParameter<PercentValue>)Parameters["Probability"]; }
-    }
-    public ILookupParameter<IItemSet<CombinedIntegerVector>> PossibleActionsParameter {
-      get { return (ILookupParameter<IItemSet<CombinedIntegerVector>>)Parameters["PossibleActions"]; }
-    }
-
-    [StorableConstructor]
-    protected UniformSomePositionsManipulator(bool deserializing) : base(deserializing) { }
-    protected UniformSomePositionsManipulator(UniformSomePositionsManipulator original, Cloner cloner)
-      : base(original, cloner) {
-    }
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new UniformSomePositionsManipulator(this, cloner);
-    }
-    public UniformSomePositionsManipulator()
-      : base() {
-      Parameters.Add(new ValueLookupParameter<PercentValue>("Probability", "The probability for each dimension to be manipulated.", new PercentValue(0.5)));
-      Parameters.Add(new LookupParameter<IItemSet<CombinedIntegerVector>>("PossibleActions"));
-    }
-
-    protected override CombinedIntegerVector Manipulate(IRandom random, CombinedIntegerVector parent, CombinedIntegerVector child) {
-      return Manipulate(random, parent, child, ProbabilityParameter.ActualValue.Value, PossibleActionsParameter.ActualValue);
-    }
-
-    public static CombinedIntegerVector Manipulate(IRandom random, CombinedIntegerVector parent, CombinedIntegerVector child, double probability, IItemSet<CombinedIntegerVector> possibleActions) {
-      for (int index = 0; index < child.Length - child.ActionLength; index++) {
-        if (random.NextDouble() < probability) {
-          UniformOnePositionInConditionManipulator.Manipulate(parent, child, index);
-        }
-      }
-
-      if (child.ActionLength > 0 && random.NextDouble() < probability) {
-        UniformActionManipulator.Manipulate(random, parent, child, possibleActions);
-      }
-      return child;
-    }
-  }
-}
