Index: branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Crossovers/TracingSymbolicExpressionTreeCrossover.cs
===================================================================
--- branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Crossovers/TracingSymbolicExpressionTreeCrossover.cs	(revision 7800)
+++ branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Crossovers/TracingSymbolicExpressionTreeCrossover.cs	(revision 7817)
@@ -127,6 +127,6 @@
       // compare the two nodes lists and check the difference (comparing node references so we avoid false functional identity). 
       // if no difference is found, then it is assumed that the whole tree was swapped with itself (it can happen), so the index is 0
-      int i, min = Math.Max(nodes0.Count, nodes1.Count);
-      for (i = 0; i != min; ++i)
+      int i = 0, min = Math.Min(nodes0.Count, nodes1.Count);
+      for (; i != min; ++i)
         if (nodes0[i] != nodes1[i]) break;
       if (i == min) i = 0;
Index: branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Plugin.cs
===================================================================
--- branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Plugin.cs	(revision 7800)
+++ branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Plugin.cs	(revision 7817)
@@ -26,5 +26,5 @@
 
 namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding {
-  [Plugin("HeuristicLab.Encodings.SymbolicExpressionTreeEncoding","Provides operators and related classes for the symbolic expression tree encoding.", "3.4.2.7799")]
+  [Plugin("HeuristicLab.Encodings.SymbolicExpressionTreeEncoding","Provides operators and related classes for the symbolic expression tree encoding.", "3.4.2.7800")]
   [PluginFile("HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4.dll", PluginFileType.Assembly)]
   [PluginDependency("HeuristicLab.Analysis", "3.3")]
Index: branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/SymbolicExpressionTreeMatching.cs
===================================================================
--- branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/SymbolicExpressionTreeMatching.cs	(revision 7800)
+++ branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/SymbolicExpressionTreeMatching.cs	(revision 7817)
@@ -70,6 +70,6 @@
 
     public static bool ContainsFragment(this ISymbolicExpressionTree tree, ISymbolicExpressionTreeNode fragment, int mode) {
-      var nodes = tree.IterateNodesBreadth() as List<ISymbolicExpressionTreeNode>;
-      var fragments = fragment.IterateNodesBreadth() as List<ISymbolicExpressionTreeNode>;
+      var nodes = tree.IterateNodesPostfix() as List<ISymbolicExpressionTreeNode>;
+      var fragments = fragment.IterateNodesPostfix() as List<ISymbolicExpressionTreeNode>;
       return FindMatch(nodes, fragments, mode) != -1;
     }
@@ -77,17 +77,17 @@
     // convenience methods for less typing :)
     private static IEnumerator<ISymbolicExpressionTreeNode> Enumerator(this ISymbolicExpressionTree tree) {
-      return tree.IterateNodesBreadth().GetEnumerator();
+      return tree.IterateNodesPostfix().GetEnumerator();
     }
     private static IEnumerator<ISymbolicExpressionTreeNode> Enumerator(this ISymbolicExpressionTreeNode tree) {
-      return tree.IterateNodesBreadth().GetEnumerator();
+      return tree.IterateNodesPostfix().GetEnumerator();
     }
     public static int FindMatch(ISymbolicExpressionTree a, ISymbolicExpressionTree b, int mode) {
-      var nodesA = a.IterateNodesBreadth() as List<ISymbolicExpressionTreeNode>;
-      var nodesB = b.IterateNodesBreadth() as List<ISymbolicExpressionTreeNode>;
+      var nodesA = a.IterateNodesPostfix() as List<ISymbolicExpressionTreeNode>;
+      var nodesB = b.IterateNodesPostfix() as List<ISymbolicExpressionTreeNode>;
       return FindMatch(nodesA, nodesB, mode);
     }
     public static int FindMatch(ISymbolicExpressionTreeNode a, ISymbolicExpressionTreeNode b, int mode) {
-      var nodesA = a.IterateNodesBreadth() as List<ISymbolicExpressionTreeNode>;
-      var nodesB = b.IterateNodesBreadth() as List<ISymbolicExpressionTreeNode>;
+      var nodesA = a.IterateNodesPostfix() as List<ISymbolicExpressionTreeNode>;
+      var nodesB = b.IterateNodesPostfix() as List<ISymbolicExpressionTreeNode>;
       return FindMatch(nodesA, nodesB, mode);
     }
Index: branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.EvolutionaryTracking.Views/3.4/GenealogyGraphChart.cs
===================================================================
--- branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.EvolutionaryTracking.Views/3.4/GenealogyGraphChart.cs	(revision 7800)
+++ branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.EvolutionaryTracking.Views/3.4/GenealogyGraphChart.cs	(revision 7817)
@@ -160,8 +160,4 @@
           // color selected node and its genealogy
           if (_selectedGenealogyGraphNode == null) return;
-          var gNode = _selectedGenealogyGraphNode.Data; // genealogy graph node (representing an individual in the population) 
-          double rank = gNode.Rank;
-          var ancestors = gNode.Ancestors().Where(a => a.Rank < rank).ToList();
-          ancestors.Add(gNode);
           // use special highlighting for the currently selected genealogy graph node
           var center = _selectedGenealogyGraphNode.Center;
@@ -174,4 +170,8 @@
             Chart.Group.Add(_targetRectangle);
           }
+          var gNode = _selectedGenealogyGraphNode.Data; // genealogy graph node (representing an individual in the population) 
+          double rank = gNode.Rank;
+          var ancestors = gNode.Ancestors().Where(a => a.Rank < rank).ToList();
+          ancestors.Add(gNode);
           // highlight selected node and its ancestry
           foreach (var node in ancestors.SelectMany(n => _visualNodeMap[n])) {
@@ -206,5 +206,5 @@
         if (_selectedGenealogyGraphNode != null)
           /* emit clicked event */
-          OnGenealogyGraphNodeClicked(_selectedGenealogyGraphNode, e);
+          GenealogyGraphNodeClicked(_selectedGenealogyGraphNode, e);
       }
     }
Index: branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.EvolutionaryTracking.Views/3.4/GenealogyGraphView.cs
===================================================================
--- branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.EvolutionaryTracking.Views/3.4/GenealogyGraphView.cs	(revision 7800)
+++ branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.EvolutionaryTracking.Views/3.4/GenealogyGraphView.cs	(revision 7817)
@@ -97,5 +97,5 @@
         int index = SymbolicExpressionTreeMatching.FindMatch(nodes, fragments, similarityModeSelector.SelectedIndex);
         if (index != -1) {
-          _selectedVisualSymbolicExpressionTreeNode = symbolicExpressionTreeChart.GetVisualSymbolicExpressionTreeNode(nodes[index + fragments.Count - 1]);
+          _selectedVisualSymbolicExpressionTreeNode = symbolicExpressionTreeChart.GetVisualSymbolicExpressionTreeNode(nodes[index]);
           var subtree = _selectedVisualSymbolicExpressionTreeNode.SymbolicExpressionTreeNode;
           foreach (var visualNode in subtree.IterateNodesBreadth().Select(node => symbolicExpressionTreeChart.GetVisualSymbolicExpressionTreeNode(node))) {
@@ -111,7 +111,4 @@
         if (arc != null) {
           var fragment = arc.Data as ISymbolicExpressionTreeNode;
-          //var fragmentNodes = fragment.IterateNodesBreadth() as List<ISymbolicExpressionTreeNode>;
-          //var treeNodes = tree.IterateNodesBreadth() as List<ISymbolicExpressionTreeNode>;
-          //var idx = SymbolicExpressionTreeMatching.FindMatch(treeNodes, fragmentNodes, (int)SymbolicExpressionTreeMatching.SimilarityLevel.Exact);
           foreach (var node in fragment.IterateNodesBreadth()) {
             var visualNode = symbolicExpressionTreeChart.GetVisualSymbolicExpressionTreeNode(node);
@@ -121,9 +118,4 @@
         }
       }
-      // what's left to be done here is to:
-      // - get the symbolic expression tree 
-      // - get the corresponding fragment
-      // - for all symbolic expression tree nodes in the fragment, colorize the corresponding visual nodes
-      // - repaint the tree
     }
 
Index: branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.EvolutionaryTracking/3.4/SymbolicExpressionTreeGenealogyGraph.cs
===================================================================
--- branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.EvolutionaryTracking/3.4/SymbolicExpressionTreeGenealogyGraph.cs	(revision 7800)
+++ branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.EvolutionaryTracking/3.4/SymbolicExpressionTreeGenealogyGraph.cs	(revision 7817)
@@ -16,5 +16,4 @@
     #region Fragment tracing
     public IEnumerable<ISymbolicExpressionTree> TraceFragment(ISymbolicExpressionTreeNode fragment, int mode = 0) {
-      //return Keys.Where(tree => ContainsFragment(tree, fragment, mode) != -1);
       return Keys.Where(tree => tree.ContainsFragment(fragment, mode));
     }
Index: branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Selection/3.3/Plugin.cs
===================================================================
--- branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Selection/3.3/Plugin.cs	(revision 7800)
+++ branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Selection/3.3/Plugin.cs	(revision 7817)
@@ -26,5 +26,5 @@
   /// Plugin class for HeuristicLab.Selection plugin.
   /// </summary>
-  [Plugin("HeuristicLab.Selection", "3.3.6.7799")]
+  [Plugin("HeuristicLab.Selection", "3.3.6.7800")]
   [PluginFile("HeuristicLab.Selection-3.3.dll", PluginFileType.Assembly)]
   [PluginDependency("HeuristicLab.Collections", "3.3")]
