Index: sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Crossovers/SubtreeCrossover.cs
===================================================================
--- sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Crossovers/SubtreeCrossover.cs	(revision 11951)
+++ sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Crossovers/SubtreeCrossover.cs	(working copy)
@@ -108,7 +108,7 @@
       if (allowedBranches.Count == 0) {
         return parent0;
       } else {
-        var selectedBranch = SelectRandomBranch(random, allowedBranches, internalCrossoverPointProbability);
+        var selectedBranch = (ISymbolicExpressionTreeNode)SelectRandomBranch(random, allowedBranches, internalCrossoverPointProbability).Clone();
 
         if (crossoverPoint0.Child != null) {
           // manipulate the tree of parent0 in place
