Index: /branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking.Views/3.4/GenealogyGraphChart.cs
===================================================================
--- /branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking.Views/3.4/GenealogyGraphChart.cs	(revision 11261)
+++ /branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking.Views/3.4/GenealogyGraphChart.cs	(revision 11262)
@@ -117,5 +117,6 @@
             ToolTipText = "Rank: " + node.Rank + nl +
                           "Quality: " + String.Format("{0:0.0000}", node.Quality) + nl +
-                          "IsElite: " + node.IsElite
+                          "IsElite: " + node.IsElite + nl +
+                          "In/Out Degree: " + node.InDegree + " " + node.OutDegree
           };
           Chart.Group.Add(visualNode);
Index: /branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking.Views/3.4/HeuristicLab.EvolutionTracking.Views-3.4.csproj
===================================================================
--- /branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking.Views/3.4/HeuristicLab.EvolutionTracking.Views-3.4.csproj	(revision 11261)
+++ /branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking.Views/3.4/HeuristicLab.EvolutionTracking.Views-3.4.csproj	(revision 11262)
@@ -97,5 +97,7 @@
       <DependentUpon>FrequentFragmentsDialog.cs</DependentUpon>
     </Compile>
-    <Compile Include="GenealogyGraphChart.cs" />
+    <Compile Include="GenealogyGraphChart.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
     <Compile Include="GenealogyGraphChart.Designer.cs">
       <DependentUpon>GenealogyGraphChart.cs</DependentUpon>
Index: /branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking/3.4/Analyzers/GenealogyAnalyzer.cs
===================================================================
--- /branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking/3.4/Analyzers/GenealogyAnalyzer.cs	(revision 11261)
+++ /branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking/3.4/Analyzers/GenealogyAnalyzer.cs	(revision 11262)
@@ -272,5 +272,5 @@
           var prevVertex = (IGenealogyGraphNode<T>)GenealogyGraph.GetByContent(elite);
           prevVertex.IsElite = true; // mark elites in the graph retroactively
-          var w = new GenealogyGraphNode<T>(prevVertex); //shallow copy, arcs are not copied
+          var w = (IGenealogyGraphNode<T>)prevVertex.Clone();
           var v = new GenealogyGraphNode<T>(prevVertex.Data) {
             Rank = generation,
@@ -321,9 +321,9 @@
       int generation = GenerationsParameter.ActualValue.Value;
       var population = PopulationParameter.ActualValue;
-      var discardedOffspring = GenealogyGraph.Ranks[generation].Select(x => (T)x.Data).Except(population);
+      var discardedOffspring = GenealogyGraph.Ranks[generation].Select(x => (T)x.Data).Except(population).ToList();
       foreach (var vertex in discardedOffspring.Select(individual => GenealogyGraph.GetByContent(individual))) {
         if (vertex.InDegree == 1) {
           var p = vertex.Parents.First();
-          if (p.Rank.Equals(generation - 1))
+          if (!p.Rank.Equals(generation - 0.5))
             throw new InvalidOperationException("Parent must be an intermediate vertex");
           GenealogyGraph.RemoveVertex(p);
Index: /branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking/3.4/GenealogyGraph/GenealogyGraphNode.cs
===================================================================
--- /branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking/3.4/GenealogyGraph/GenealogyGraphNode.cs	(revision 11261)
+++ /branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking/3.4/GenealogyGraph/GenealogyGraphNode.cs	(revision 11262)
@@ -36,14 +36,4 @@
     public override IDeepCloneable Clone(Cloner cloner) {
       return new GenealogyGraphNode(this, cloner);
-    }
-
-    // this constructor emulates the behavior of a copy constructor
-    // it returns a shallow copy in which the arcs are not cloned
-    protected GenealogyGraphNode(IGenealogyGraphNode original)
-      : base((IDeepCloneable)original.Data.Clone()) {
-      Quality = original.Quality;
-      Rank = original.Rank;
-      IsElite = original.IsElite;
-      Id = Guid.NewGuid().ToString();
     }
 
@@ -146,5 +136,6 @@
     }
 
-    public GenealogyGraphNode(IGenealogyGraphNode<T> original) : base(original) { }
+    [StorableConstructor]
+    protected GenealogyGraphNode(bool deserializing) : base(deserializing) { }
 
     public GenealogyGraphNode(IDeepCloneable content) : base(content) { }
