Index: branches/HiveStatistics/sources/HeuristicLab.Common/3.3/ArrayExtensions.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Common/3.3/ArrayExtensions.cs	(revision 11205)
+++ branches/HiveStatistics/sources/HeuristicLab.Common/3.3/ArrayExtensions.cs	(revision 11205)
@@ -0,0 +1,60 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2014 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 System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace HeuristicLab.Common {
+  public static class ArrayExtensions {
+
+    public static void StableSort<T>(this T[] values, Comparison<T> comparison) {
+      values.StableSort(new StableSortComparer<T>(comparison));
+    }
+
+    public static void StableSort<T>(this T[] values, IComparer<T> comparer = null) {
+      var sorted = values.OrderBy(x => x, comparer ?? Comparer<T>.Default).ToArray();
+      Array.ConstrainedCopy(sorted, 0, values, 0, values.Length);
+    }
+
+    public static void StableSort<T>(this T[] values, int index, int length, Comparison<T> comparison) {
+      values.StableSort(index, length, new StableSortComparer<T>(comparison));
+    }
+
+    public static void StableSort<T>(this T[] values, int index, int length, IComparer<T> comparer = null) {
+      if (index < 0) throw new ArgumentOutOfRangeException("index is less than zero.");
+      if (length < 0) throw new ArgumentOutOfRangeException("length is less than zero.");
+      if (index + length > values.Length) throw new ArgumentException("index and length do not specify a valid range in the array.");
+      var sortedArray = values.Skip(index).Take(length).OrderBy(x => x, comparer ?? Comparer<T>.Default).ToArray();
+      Array.ConstrainedCopy(sortedArray, 0, values, index, length);
+    }
+
+    private class StableSortComparer<T> : IComparer<T> {
+      public StableSortComparer(Comparison<T> comparison) {
+        this.comparison = comparison;
+      }
+      public int Compare(T x, T y) {
+        return comparison(x, y);
+      }
+      private readonly Comparison<T> comparison;
+    }
+  }
+}
Index: branches/HiveStatistics/sources/HeuristicLab.Common/3.3/CancelEventArgs.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Common/3.3/CancelEventArgs.cs	(revision 11203)
+++ branches/HiveStatistics/sources/HeuristicLab.Common/3.3/CancelEventArgs.cs	(revision 11205)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Common/3.3/Cloner.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Common/3.3/Cloner.cs	(revision 11203)
+++ branches/HiveStatistics/sources/HeuristicLab.Common/3.3/Cloner.cs	(revision 11205)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -67,4 +67,15 @@
     }
 
+    /// <summary>
+    /// Returns the clone of an deeply cloned item, if it was already cloned.
+    /// </summary>
+    /// <param name="original">The original object.</param>
+    /// <returns>The clone of the given object, if it was already cloned; null otherwise</returns>
+    public IDeepCloneable GetClone(IDeepCloneable original) {
+      IDeepCloneable clone = null;
+      mapping.TryGetValue(original, out clone);
+      return clone;
+    }
+
   }
 }
Index: branches/HiveStatistics/sources/HeuristicLab.Common/3.3/ColorGradient.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Common/3.3/ColorGradient.cs	(revision 11203)
+++ branches/HiveStatistics/sources/HeuristicLab.Common/3.3/ColorGradient.cs	(revision 11205)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Common/3.3/Constants.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Common/3.3/Constants.cs	(revision 11203)
+++ branches/HiveStatistics/sources/HeuristicLab.Common/3.3/Constants.cs	(revision 11205)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Common/3.3/Content/ContentManager.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Common/3.3/Content/ContentManager.cs	(revision 11203)
+++ branches/HiveStatistics/sources/HeuristicLab.Common/3.3/Content/ContentManager.cs	(revision 11205)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Common/3.3/Content/IContent.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Common/3.3/Content/IContent.cs	(revision 11203)
+++ branches/HiveStatistics/sources/HeuristicLab.Common/3.3/Content/IContent.cs	(revision 11205)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Common/3.3/Content/IStorableContent.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Common/3.3/Content/IStorableContent.cs	(revision 11203)
+++ branches/HiveStatistics/sources/HeuristicLab.Common/3.3/Content/IStorableContent.cs	(revision 11205)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Common/3.3/DeepCloneable.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Common/3.3/DeepCloneable.cs	(revision 11203)
+++ branches/HiveStatistics/sources/HeuristicLab.Common/3.3/DeepCloneable.cs	(revision 11205)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Common/3.3/DoubleExtensions.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Common/3.3/DoubleExtensions.cs	(revision 11203)
+++ branches/HiveStatistics/sources/HeuristicLab.Common/3.3/DoubleExtensions.cs	(revision 11205)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Common/3.3/EnumerableExtensions.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Common/3.3/EnumerableExtensions.cs	(revision 11203)
+++ branches/HiveStatistics/sources/HeuristicLab.Common/3.3/EnumerableExtensions.cs	(revision 11205)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Common/3.3/EnumerableStatisticExtensions.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Common/3.3/EnumerableStatisticExtensions.cs	(revision 11203)
+++ branches/HiveStatistics/sources/HeuristicLab.Common/3.3/EnumerableStatisticExtensions.cs	(revision 11205)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Common/3.3/EventArgs.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Common/3.3/EventArgs.cs	(revision 11203)
+++ branches/HiveStatistics/sources/HeuristicLab.Common/3.3/EventArgs.cs	(revision 11205)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Common/3.3/HeuristicLab.Common-3.3.csproj
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Common/3.3/HeuristicLab.Common-3.3.csproj	(revision 11203)
+++ branches/HiveStatistics/sources/HeuristicLab.Common/3.3/HeuristicLab.Common-3.3.csproj	(revision 11205)
@@ -124,4 +124,6 @@
     <Compile Include="Content\IStorableContent.cs" />
     <Compile Include="Constants.cs" />
+    <Compile Include="ArrayExtensions.cs" />
+    <Compile Include="ListExtensions.cs" />
     <Compile Include="Point2D.cs" />
     <Compile Include="EnumerableExtensions.cs" />
Index: branches/HiveStatistics/sources/HeuristicLab.Common/3.3/IDeepCloneable.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Common/3.3/IDeepCloneable.cs	(revision 11203)
+++ branches/HiveStatistics/sources/HeuristicLab.Common/3.3/IDeepCloneable.cs	(revision 11205)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Common/3.3/ListExtensions.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Common/3.3/ListExtensions.cs	(revision 11205)
+++ branches/HiveStatistics/sources/HeuristicLab.Common/3.3/ListExtensions.cs	(revision 11205)
@@ -0,0 +1,63 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2014 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 System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace HeuristicLab.Common {
+  public static class ListExtensions {
+
+    public static void StableSort<T>(this List<T> values, Comparison<T> comparison) {
+      values.StableSort(new StableSortComparer<T>(comparison));
+    }
+
+    public static void StableSort<T>(this List<T> values, IComparer<T> comparer = null) {
+      int i = 0;
+      foreach (var e in values.OrderBy(x => x, comparer ?? Comparer<T>.Default))
+        values[i++] = e;
+    }
+
+    public static void StableSort<T>(this List<T> values, int index, int count, Comparison<T> comparison) {
+      values.StableSort(index, count, new StableSortComparer<T>(comparison));
+    }
+
+    public static void StableSort<T>(this List<T> values, int index, int count, IComparer<T> comparer = null) {
+      if (index < 0) throw new ArgumentOutOfRangeException("index is less than zero.");
+      if (count < 0) throw new ArgumentOutOfRangeException("count is less than zero.");
+      if (index + count > values.Count) throw new ArgumentException("index and count do not specify a valid range in the List<T>.");
+      var orderedList = values.Skip(index).Take(count).OrderBy(x => x, comparer ?? Comparer<T>.Default);
+      int i = index;
+      foreach (var e in orderedList)
+        values[i++] = e;
+    }
+
+    private class StableSortComparer<T> : IComparer<T> {
+      public StableSortComparer(Comparison<T> comparison) {
+        this.comparison = comparison;
+      }
+      public int Compare(T x, T y) {
+        return comparison(x, y);
+      }
+      private readonly Comparison<T> comparison;
+    }
+  }
+}
Index: branches/HiveStatistics/sources/HeuristicLab.Common/3.3/MatrixExtensions.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Common/3.3/MatrixExtensions.cs	(revision 11203)
+++ branches/HiveStatistics/sources/HeuristicLab.Common/3.3/MatrixExtensions.cs	(revision 11205)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Common/3.3/NaturalStringComparer.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Common/3.3/NaturalStringComparer.cs	(revision 11203)
+++ branches/HiveStatistics/sources/HeuristicLab.Common/3.3/NaturalStringComparer.cs	(revision 11205)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Common/3.3/ObjectExtensions.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Common/3.3/ObjectExtensions.cs	(revision 11203)
+++ branches/HiveStatistics/sources/HeuristicLab.Common/3.3/ObjectExtensions.cs	(revision 11205)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -38,4 +38,5 @@
       if (obj == null) return Enumerable.Empty<object>();
       if (excludedMembers == null) excludedMembers = new HashSet<object>();
+      var fieldInfos = new Dictionary<Type, FieldInfo[]>();
 
       var objects = new HashSet<object>();
@@ -47,5 +48,5 @@
         objects.Add(current);
 
-        foreach (object o in GetChildObjects(current, excludedMembers, excludeStaticMembers)) {
+        foreach (object o in GetChildObjects(current, excludedMembers, excludeStaticMembers, fieldInfos)) {
           if (o == null) continue;
           if (ExcludeType(o.GetType())) continue;
@@ -80,5 +81,5 @@
     }
 
-    private static IEnumerable<object> GetChildObjects(object obj, HashSet<object> excludedMembers, bool excludeStaticMembers) {
+    private static IEnumerable<object> GetChildObjects(object obj, HashSet<object> excludedMembers, bool excludeStaticMembers, Dictionary<Type, FieldInfo[]> fieldInfos) {
       Type type = obj.GetType();
 
@@ -111,5 +112,7 @@
         }
       } else {
-        foreach (FieldInfo f in type.GetAllFields()) {
+        if (!fieldInfos.ContainsKey(type))
+          fieldInfos[type] = type.GetAllFields().ToArray();
+        foreach (FieldInfo f in fieldInfos[type]) {
           if (excludeStaticMembers && f.IsStatic) continue;
           object fieldValue;
Index: branches/HiveStatistics/sources/HeuristicLab.Common/3.3/Plugin.cs.frame
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Common/3.3/Plugin.cs.frame	(revision 11203)
+++ branches/HiveStatistics/sources/HeuristicLab.Common/3.3/Plugin.cs.frame	(revision 11205)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -29,5 +29,5 @@
   /// Plugin class for HeuristicLab.Common plugin.
   /// </summary>
-  [Plugin("HeuristicLab.Common", "3.3.7.$WCREV$")]
+  [Plugin("HeuristicLab.Common", "3.3.10.$WCREV$")]
   [PluginFile("HeuristicLab.Common-3.3.dll", PluginFileType.Assembly)]
   public class HeuristicLabCommonPlugin : PluginBase {
Index: branches/HiveStatistics/sources/HeuristicLab.Common/3.3/Point2D.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Common/3.3/Point2D.cs	(revision 11203)
+++ branches/HiveStatistics/sources/HeuristicLab.Common/3.3/Point2D.cs	(revision 11205)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Common/3.3/Properties/AssemblyInfo.cs.frame
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Common/3.3/Properties/AssemblyInfo.cs.frame	(revision 11203)
+++ branches/HiveStatistics/sources/HeuristicLab.Common/3.3/Properties/AssemblyInfo.cs.frame	(revision 11205)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -32,5 +32,5 @@
 [assembly: AssemblyCompany("")]
 [assembly: AssemblyProduct("HeuristicLab")]
-[assembly: AssemblyCopyright("(c) 2002-2012 HEAL")]
+[assembly: AssemblyCopyright("(c) 2002-2014 HEAL")]
 [assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]
@@ -54,3 +54,3 @@
 // by using the '*' as shown below:
 [assembly: AssemblyVersion("3.3.0.0")]
-[assembly: AssemblyFileVersion("3.3.7.$WCREV$")]
+[assembly: AssemblyFileVersion("3.3.10.$WCREV$")]
Index: branches/HiveStatistics/sources/HeuristicLab.Common/3.3/ReferenceEqualityComparer.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Common/3.3/ReferenceEqualityComparer.cs	(revision 11203)
+++ branches/HiveStatistics/sources/HeuristicLab.Common/3.3/ReferenceEqualityComparer.cs	(revision 11205)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Common/3.3/TimeSpanHelper.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Common/3.3/TimeSpanHelper.cs	(revision 11203)
+++ branches/HiveStatistics/sources/HeuristicLab.Common/3.3/TimeSpanHelper.cs	(revision 11205)
@@ -2,5 +2,5 @@
 
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Common/3.3/TypeEqualityComparer.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Common/3.3/TypeEqualityComparer.cs	(revision 11203)
+++ branches/HiveStatistics/sources/HeuristicLab.Common/3.3/TypeEqualityComparer.cs	(revision 11205)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Common/3.3/TypeExtensions.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Common/3.3/TypeExtensions.cs	(revision 11203)
+++ branches/HiveStatistics/sources/HeuristicLab.Common/3.3/TypeExtensions.cs	(revision 11205)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -49,13 +49,8 @@
 
     public static IEnumerable<FieldInfo> GetAllFields(this Type type) {
-      foreach (var field in type.GetFields(BindingFlags.Instance | BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic))
-        yield return field;
-
-      foreach (var field in type.GetFields(BindingFlags.Static | BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic))
-        yield return field;
-
-      if (type.BaseType != null) {
-        foreach (var field in type.BaseType.GetAllFields())
+      while (type != null) {
+        foreach (var field in type.GetFields(BindingFlags.Static | BindingFlags.Instance | BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic))
           yield return field;
+        type = type.BaseType;
       }
     }
