Index: branches/HeuristicLab.Analysis.AlgorithmBehavior/AlgorithmBehaviorUnitTests/PermutationCacheTest.cs
===================================================================
--- branches/HeuristicLab.Analysis.AlgorithmBehavior/AlgorithmBehaviorUnitTests/PermutationCacheTest.cs	(revision 10104)
+++ branches/HeuristicLab.Analysis.AlgorithmBehavior/AlgorithmBehaviorUnitTests/PermutationCacheTest.cs	(revision 10105)
@@ -42,5 +42,5 @@
         //should be added
         PermutationSolutionInformation pi = new PermutationSolutionInformation();
-        pi.Generation = 9;
+        pi.Iteration = 9;
         pi.ProducedBy = ProducedBy.Mutation;
         dict.Add(p, pi);
@@ -48,5 +48,5 @@
         //should be added
         pi = new PermutationSolutionInformation();
-        pi.Generation = 10;
+        pi.Iteration = 10;
         pi.ProducedBy = ProducedBy.Mutation;
         dict.Add(p, pi);
@@ -54,5 +54,5 @@
         //should be added
         pi = new PermutationSolutionInformation();
-        pi.Generation = 10;
+        pi.Iteration = 10;
         pi.ProducedBy = ProducedBy.Crossover;
         dict.Add(p, pi);
@@ -60,5 +60,5 @@
         //should not be added
         pi = new PermutationSolutionInformation();
-        pi.Generation = 10;
+        pi.Iteration = 10;
         pi.ProducedBy = ProducedBy.Mutation;
         dict.Add(p, pi);
Index: branches/HeuristicLab.Analysis.AlgorithmBehavior/AlgorithmBehaviorUnitTests/RealVectorSolutionCacheTest.cs
===================================================================
--- branches/HeuristicLab.Analysis.AlgorithmBehavior/AlgorithmBehaviorUnitTests/RealVectorSolutionCacheTest.cs	(revision 10104)
+++ branches/HeuristicLab.Analysis.AlgorithmBehavior/AlgorithmBehaviorUnitTests/RealVectorSolutionCacheTest.cs	(revision 10105)
@@ -54,5 +54,5 @@
         info = new RealVectorSolutionInformation();
         info.ProducedBy = ProducedBy.Move;
-        info.Generation = 20;
+        info.Iteration = 20;
         solutionCache.Add(vector, info);
 
Index: branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching/3.3/PermutationEncoding/PermutationSolutionCacheCollector.cs
===================================================================
--- branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching/3.3/PermutationEncoding/PermutationSolutionCacheCollector.cs	(revision 10104)
+++ branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching/3.3/PermutationEncoding/PermutationSolutionCacheCollector.cs	(revision 10105)
@@ -90,5 +90,5 @@
       foreach (var sol in solutions) {
         PermutationSolutionInformation info = new PermutationSolutionInformation();
-        info.Generation = GenerationsParameter.ActualValue.Value;
+        info.Iteration = GenerationsParameter.ActualValue.Value;
         info.ProducedBy = ProducedBy.CrossoverAndMutation;
 
Index: branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching/3.3/PermutationEncoding/PermutationSolutionInformation.cs
===================================================================
--- branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching/3.3/PermutationEncoding/PermutationSolutionInformation.cs	(revision 10104)
+++ branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching/3.3/PermutationEncoding/PermutationSolutionInformation.cs	(revision 10105)
@@ -47,8 +47,8 @@
 
       h = (h << 4) ^ (h >> 28) ^ ProducedBy.GetHashCode();
-      h = (h << 4) ^ (h >> 28) ^ Generation.GetHashCode();
+      h = (h << 4) ^ (h >> 28) ^ Iteration.GetHashCode();
 
-      if (ParentList != null) {
-        foreach (var parent in ParentList) {
+      if (Predecessors != null) {
+        foreach (var parent in Predecessors) {
           h = (h << 4) ^ (h >> 28) ^ pweq.GetHashCode(parent);
         }
Index: branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching/3.3/RealVectorEncoding/RealVectorSolutionCacheCollector.cs
===================================================================
--- branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching/3.3/RealVectorEncoding/RealVectorSolutionCacheCollector.cs	(revision 10104)
+++ branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching/3.3/RealVectorEncoding/RealVectorSolutionCacheCollector.cs	(revision 10105)
@@ -90,5 +90,5 @@
       foreach (var sol in solutions) {
         RealVectorSolutionInformation info = new RealVectorSolutionInformation();
-        info.Generation = GenerationsParameter.ActualValue.Value;
+        info.Iteration = GenerationsParameter.ActualValue.Value;
         info.ProducedBy = ProducedBy.CrossoverAndMutation;
 
Index: branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching/3.3/RealVectorEncoding/RealVectorSolutionInformation.cs
===================================================================
--- branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching/3.3/RealVectorEncoding/RealVectorSolutionInformation.cs	(revision 10104)
+++ branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching/3.3/RealVectorEncoding/RealVectorSolutionInformation.cs	(revision 10105)
@@ -46,8 +46,8 @@
 
       h = (h << 4) ^ (h >> 28) ^ ProducedBy.GetHashCode();
-      h = (h << 4) ^ (h >> 28) ^ Generation.GetHashCode();
+      h = (h << 4) ^ (h >> 28) ^ Iteration.GetHashCode();
 
-      if (ParentList != null) {
-        foreach (var parent in ParentList) {
+      if (Predecessors != null) {
+        foreach (var parent in Predecessors) {
           h = (h << 4) ^ (h >> 28) ^ pweq.GetHashCode(parent);
         }
Index: branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching/3.3/SolutionCache.cs
===================================================================
--- branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching/3.3/SolutionCache.cs	(revision 10104)
+++ branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching/3.3/SolutionCache.cs	(revision 10105)
@@ -98,5 +98,5 @@
 
     public virtual List<TKey> GetSolutionsFromGeneration(int generation) {
-      return solutionDictionary.Where(x => x.Value.Count(y => y.Generation == generation) != 0).Select(x => x.Key).ToList<TKey>();
+      return solutionDictionary.Where(x => x.Value.Count(y => y.Iteration == generation) != 0).Select(x => x.Key).ToList<TKey>();
     }
   }
Index: branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching/3.3/SolutionInformation.cs
===================================================================
--- branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching/3.3/SolutionInformation.cs	(revision 10104)
+++ branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching/3.3/SolutionInformation.cs	(revision 10105)
@@ -27,5 +27,5 @@
 
 namespace HeuristicLab.Analysis.SolutionCaching {
-  public enum ProducedBy { Crossover, Mutation, CrossoverAndMutation, Move, Other };
+  public enum ProducedBy { Other = 0, Crossover = 1, Mutation = 2, CrossoverAndMutation = 3, Move = 4 };
 
   [Item("SolutionInformation", "Stores meta-information about a solution.")]
@@ -35,12 +35,12 @@
     public ProducedBy ProducedBy { get; set; }
     [Storable]
-    public List<T> ParentList { get; set; }
+    public List<T> Predecessors { get; set; }
     [Storable]
-    public int Generation { get; set; }
+    public int Iteration { get; set; }
     [Storable]
     public ResultCollection InfoStore { get; set; }
 
     public SolutionInformation() {
-      ParentList = new List<T>();
+      Predecessors = new List<T>();
       InfoStore = new ResultCollection();
     }
@@ -51,6 +51,6 @@
       : base(original, cloner) {
       this.ProducedBy = original.ProducedBy;
-      this.ParentList = new List<T>(original.ParentList);
-      this.Generation = original.Generation;
+      this.Predecessors = new List<T>(original.Predecessors);
+      this.Iteration = original.Iteration;
       this.InfoStore = (ResultCollection)original.InfoStore.Clone(cloner);
     }
@@ -64,12 +64,12 @@
       if (pi == null) return false;
 
-      if (ProducedBy == pi.ProducedBy && Generation == pi.Generation) {
-        if (pi.ParentList == null && ParentList == null) return true;
-        if (pi.ParentList != null && ParentList == null ||
-          pi.ParentList == null && ParentList != null) return false;
-        if (pi.ParentList.Count != ParentList.Count) return false;
+      if (ProducedBy == pi.ProducedBy && Iteration == pi.Iteration) {
+        if (pi.Predecessors == null && Predecessors == null) return true;
+        if (pi.Predecessors != null && Predecessors == null ||
+          pi.Predecessors == null && Predecessors != null) return false;
+        if (pi.Predecessors.Count != Predecessors.Count) return false;
 
-        foreach (var p in ParentList) {
-          if (!pi.ParentList.Contains(p)) return false;
+        foreach (var p in Predecessors) {
+          if (!pi.Predecessors.Contains(p)) return false;
         }
         foreach (IResult info in InfoStore) {
