Index: branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/AfterCrossoverCombinedOperator.cs
===================================================================
--- branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/AfterCrossoverCombinedOperator.cs	(revision 9020)
+++ branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/AfterCrossoverCombinedOperator.cs	(revision 9032)
@@ -31,4 +31,10 @@
   [StorableClass]
   public class AfterCrossoverCombinedOperator : CombinedOperator {
+    [Storable]
+    protected CrossoverPerformanceAnalyzer cxAnalyzer;
+
+    [Storable]
+    protected VariableDuplicator varDuplicator;
+
     public ILookupParameter<IEvaluator> EvaluatorParameter {
       get { return ((LookupParameter<IEvaluator>)Parameters["Evaluator"]); }
@@ -42,4 +48,6 @@
     protected AfterCrossoverCombinedOperator(AfterCrossoverCombinedOperator original, Cloner cloner)
       : base(original, cloner) {
+      cxAnalyzer = (CrossoverPerformanceAnalyzer)original.cxAnalyzer.Clone(cloner);
+      varDuplicator = (VariableDuplicator)original.cxAnalyzer.Clone(cloner);
     }
 
@@ -52,5 +60,5 @@
     }
 
-    void SimilarityCalculatorParameter_ValueChanged(object sender, System.EventArgs e) {
+    protected virtual void SimilarityCalculatorParameter_ValueChanged(object sender, System.EventArgs e) {
       SimilarityCalculatorParameter.Value.QualityVariableName = "TSPTourLength";
       SimilarityCalculatorParameter.Value.SolutionVariableName = "TSPTour";
@@ -62,7 +70,7 @@
 
     public override void InitializeOperators() {
-      var cxAnalyzer = new CrossoverPerformanceAnalyzer();
+      cxAnalyzer = new CrossoverPerformanceAnalyzer();
       cxAnalyzer.SimilarityCalculatorParameter.Value = SimilarityCalculatorParameter.Value;
-      var varDuplicator = new VariableDuplicator();
+      varDuplicator = new VariableDuplicator();
 
       Operators.Add(EvaluatorParameter.ActualValue);
Index: branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers-3.3.csproj
===================================================================
--- branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers-3.3.csproj	(revision 9020)
+++ branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers-3.3.csproj	(revision 9032)
@@ -120,4 +120,5 @@
     <Compile Include="AfterCrossoverCombinedOperator.cs" />
     <Compile Include="AfterMutationCombinedOperator.cs" />
+    <Compile Include="QAPAfterCrossoverCombinedOperator.cs" />
     <Compile Include="InitializableOperator.cs" />
     <Compile Include="UnwantedMutationAnalyzer.cs" />
Index: branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/QAPAfterCrossoverCombinedOperator.cs
===================================================================
--- branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/QAPAfterCrossoverCombinedOperator.cs	(revision 9032)
+++ branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/QAPAfterCrossoverCombinedOperator.cs	(revision 9032)
@@ -0,0 +1,62 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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 HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Analysis.AlgorithmBehavior.Analyzers {
+  [Item("QAPAfterCrossoverCombinedOperator", "An operator that contains all operators that need to be executed after crossover for the QAP.")]
+  [StorableClass]
+  public class QAPAfterCrossoverCombinedOperator : AfterCrossoverCombinedOperator {
+
+    [StorableConstructor]
+    protected QAPAfterCrossoverCombinedOperator(bool deserializing) : base(deserializing) { }
+    protected QAPAfterCrossoverCombinedOperator(QAPAfterCrossoverCombinedOperator original, Cloner cloner)
+      : base(original, cloner) {
+    }
+
+    public QAPAfterCrossoverCombinedOperator()
+      : base() {
+    }
+
+    protected override void SimilarityCalculatorParameter_ValueChanged(object sender, System.EventArgs e) {
+      SimilarityCalculatorParameter.Value.QualityVariableName = "Assignment";
+      SimilarityCalculatorParameter.Value.SolutionVariableName = "Quality";
+    }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new QAPAfterCrossoverCombinedOperator(this, cloner);
+    }
+
+    public override void InitializeOperators() {
+      base.InitializeOperators();
+
+      cxAnalyzer.ParentsParameter.ActualName = "Assignment";
+      cxAnalyzer.ChildParameter.ActualName = "Assignment";
+      cxAnalyzer.ParentsQualityParameter.ActualName = "Quality";
+      cxAnalyzer.QualityParameter.ActualName = "Quality";
+
+      varDuplicator.OriginalParameter.ActualName = "Assignment";
+      varDuplicator.CloneParameter.ActualName = "AssignmentClone";
+    }
+  }
+}
