Index: /branches/CloningRefactoring/HeuristicLab.Core/3.3/Constraints/Constraint.cs
===================================================================
--- /branches/CloningRefactoring/HeuristicLab.Core/3.3/Constraints/Constraint.cs	(revision 4717)
+++ /branches/CloningRefactoring/HeuristicLab.Core/3.3/Constraints/Constraint.cs	(revision 4718)
@@ -35,8 +35,8 @@
       constrainedValue = null;  //mkommend: intentionally set to null;
 
-      IItem constraintDataItem = original.constraintData as IItem;
+      IDeepCloneable constraintDataDeepCloneable = original.constraintData as IDeepCloneable;
       ICloneable constraintDataCloneable = original.constraintData as ICloneable;
-      if (constraintDataItem != null)
-        constraintData = cloner.Clone(constraintDataItem);
+      if (constraintDataDeepCloneable != null)
+        constraintData = cloner.Clone(constraintDataDeepCloneable);
       else if (constraintDataCloneable != null)
         constraintData = constraintDataCloneable.Clone();
Index: /branches/CloningRefactoring/HeuristicLab.Core/3.3/Scope.cs
===================================================================
--- /branches/CloningRefactoring/HeuristicLab.Core/3.3/Scope.cs	(revision 4717)
+++ /branches/CloningRefactoring/HeuristicLab.Core/3.3/Scope.cs	(revision 4718)
@@ -69,6 +69,6 @@
         foreach (IScope child in SubScopes)
           child.Parent = this;
-        RegisterSubScopesEvents();
       } else subScopes = new ScopeList();
+      RegisterSubScopesEvents();
     }
     /// <summary>
Index: /branches/CloningRefactoring/HeuristicLab.Data/3.3/BoolValue.cs
===================================================================
--- /branches/CloningRefactoring/HeuristicLab.Data/3.3/BoolValue.cs	(revision 4717)
+++ /branches/CloningRefactoring/HeuristicLab.Data/3.3/BoolValue.cs	(revision 4718)
@@ -40,5 +40,10 @@
     public BoolValue() : base() { }
     [StorableConstructor]
-    public BoolValue(bool value) : base(value) { }
+    public BoolValue(bool value)
+      : base(value) {
+      //mkommend: be aware that the base call refers to the storable ctor => the value is set explicitly in the ctor body
+      //this should not affect the persistence because first the ctor is called and afterwards the values were set by reflection.
+      this.value = value;
+    }
 
     public override IDeepCloneable Clone(Cloner cloner) {
Index: /branches/CloningRefactoring/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/TranslocationMoveAbsoluteAttribute.cs
===================================================================
--- /branches/CloningRefactoring/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/TranslocationMoveAbsoluteAttribute.cs	(revision 4717)
+++ /branches/CloningRefactoring/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/TranslocationMoveAbsoluteAttribute.cs	(revision 4718)
@@ -43,5 +43,4 @@
       this.NewPosition = original.NewPosition;
     }
-    public TranslocationMoveAbsoluteAttribute() : this(null, -1, -1, -1) { }
     public TranslocationMoveAbsoluteAttribute(int[] number, int oldPosition, int newPosition, double moveQuality)
       : base(moveQuality) {
Index: /branches/CloningRefactoring/HeuristicLab.Operators.Views.GraphVisualization/3.3/OperatorGraphVisualization/OperatorShapeInfo.cs
===================================================================
--- /branches/CloningRefactoring/HeuristicLab.Operators.Views.GraphVisualization/3.3/OperatorGraphVisualization/OperatorShapeInfo.cs	(revision 4717)
+++ /branches/CloningRefactoring/HeuristicLab.Operators.Views.GraphVisualization/3.3/OperatorGraphVisualization/OperatorShapeInfo.cs	(revision 4718)
@@ -42,5 +42,5 @@
       lineWidth = original.lineWidth;
       title = original.title;
-      icon = (Bitmap)original.icon.Clone();
+      if (original.icon != null) icon = (Bitmap)original.icon.Clone();
 
       connectorNames = new List<string>(original.connectorNames);
Index: /branches/CloningRefactoring/HeuristicLab.Optimization/3.3/RunCollectionConstraints/RunCollectionComparisonConstraint.cs
===================================================================
--- /branches/CloningRefactoring/HeuristicLab.Optimization/3.3/RunCollectionConstraints/RunCollectionComparisonConstraint.cs	(revision 4717)
+++ /branches/CloningRefactoring/HeuristicLab.Optimization/3.3/RunCollectionConstraints/RunCollectionComparisonConstraint.cs	(revision 4718)
@@ -36,15 +36,5 @@
     protected RunCollectionComparisonConstraint(RunCollectionComparisonConstraint original, Cloner cloner)
       : base(original, cloner) {
-      IDeepCloneable constraintDataDeepCloneable = original.ConstraintData as IDeepCloneable;
-      ICloneable constraintDataCloneable = original.ConstraintData as ICloneable;
-      if (constraintDataDeepCloneable != null)
-        ConstraintData = (IStringConvertibleValue)cloner.Clone(constraintDataDeepCloneable);
-      else if (constraintDataCloneable != null)
-        ConstraintData = (IStringConvertibleValue)constraintDataCloneable.Clone();
-      else
-        ConstraintData = original.ConstraintData;
-
-      ConstraintOperation = original.ConstraintOperation;
-      ConstraintColumn = original.constraintColumn;
+      constraintColumn = original.constraintColumn;
     }
     public override IDeepCloneable Clone(Cloner cloner) {
Index: /branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis.Classification/3.3/Symbolic/SymbolicClassificationSolution.cs
===================================================================
--- /branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis.Classification/3.3/Symbolic/SymbolicClassificationSolution.cs	(revision 4717)
+++ /branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis.Classification/3.3/Symbolic/SymbolicClassificationSolution.cs	(revision 4718)
@@ -71,5 +71,4 @@
     protected SymbolicClassificationSolution(bool deserializing) : base(deserializing) { }
     protected SymbolicClassificationSolution(SymbolicClassificationSolution original, Cloner cloner) : base(original, cloner) { }
-    private SymbolicClassificationSolution() : base() { }
     public SymbolicClassificationSolution(ClassificationProblemData problemData, SymbolicRegressionModel model, double lowerEstimationLimit, double upperEstimationLimit)
       : base(problemData, model, lowerEstimationLimit, upperEstimationLimit) {
Index: /branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/SymbolicRegressionModel.cs
===================================================================
--- /branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/SymbolicRegressionModel.cs	(revision 4717)
+++ /branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/SymbolicRegressionModel.cs	(revision 4718)
@@ -39,5 +39,5 @@
       tree = (SymbolicExpressionTree)cloner.Clone(original.tree);
       interpreter = (ISymbolicExpressionTreeInterpreter)cloner.Clone(original.interpreter);
-      inputVariables = new List<string>(inputVariables);
+      inputVariables = new List<string>(original.inputVariables);
     }
 
Index: /branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/SymbolicRegressionSolution.cs
===================================================================
--- /branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/SymbolicRegressionSolution.cs	(revision 4717)
+++ /branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/SymbolicRegressionSolution.cs	(revision 4718)
@@ -66,5 +66,4 @@
       : base(original, cloner) {
     }
-    public SymbolicRegressionSolution() : base() { }
     public SymbolicRegressionSolution(DataAnalysisProblemData problemData, SymbolicRegressionModel model, double lowerEstimationLimit, double upperEstimationLimit)
       : base(problemData, lowerEstimationLimit, upperEstimationLimit) {
