Index: /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Encodings/RealEncoding.cs
===================================================================
--- /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Encodings/RealEncoding.cs	(revision 11766)
+++ /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Encodings/RealEncoding.cs	(revision 11767)
@@ -290,4 +290,5 @@
       foreach (var shakingOperator in shakingOperators) {
         shakingOperator.RealVectorParameter.ActualName = Name;
+        shakingOperator.BoundsParameter.ActualName = BoundsParameter.Name;
       }
     }
Index: /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Interfaces/IProblemDefinition.cs
===================================================================
--- /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Interfaces/IProblemDefinition.cs	(revision 11766)
+++ /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Interfaces/IProblemDefinition.cs	(revision 11767)
@@ -20,10 +20,9 @@
 #endregion
 
-using System.Collections.Generic;
 using HeuristicLab.Core;
 
 namespace HeuristicLab.Problems.Programmable {
   public interface IProblemDefinition : INamedItem {
-    IEncoding Encoding { get; }    
+    IEncoding Encoding { get; }
   }
 }
Index: /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/New/MultiObjectiveProgrammableProblem.cs
===================================================================
--- /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/New/MultiObjectiveProgrammableProblem.cs	(revision 11766)
+++ /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/New/MultiObjectiveProgrammableProblem.cs	(revision 11767)
@@ -44,5 +44,5 @@
       Operators.Add(Evaluator);
       Operators.Add(new BestScopeSolutionAnalyzer());
-      Operators.Add(new SingleObjectiveAnalyzer());
+      Operators.Add(new MultiObjectiveAnalyzer());
 
       ParameterizeOperators();
Index: /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/New/MultiObjectiveScriptableProblem.cs
===================================================================
--- /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/New/MultiObjectiveScriptableProblem.cs	(revision 11766)
+++ /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/New/MultiObjectiveScriptableProblem.cs	(revision 11767)
@@ -20,5 +20,5 @@
 #endregion
 
-using System.Collections.Generic;
+using System;
 using HeuristicLab.Common;
 using HeuristicLab.Core;
@@ -48,5 +48,10 @@
       : base(original, cloner) {
       RegisterEvents();
-      ProblemScript.Compile();
+      try {
+        ProblemScript.Compile();
+      }
+      catch (InvalidOperationException) {
+        //Compilation error
+      }
     }
     public override IDeepCloneable Clone(Cloner cloner) { return new MultiObjectiveScriptableProblem(this, cloner); }
@@ -65,5 +70,10 @@
     private void AfterDeserialization() {
       RegisterEvents();
-      ProblemScript.Compile();
+      try {
+        ProblemScript.Compile();
+      }
+      catch (InvalidOperationException) {
+        //Compilation error
+      }
     }
 
Index: /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/New/Scripts/ProblemDefinitionScript.cs
===================================================================
--- /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/New/Scripts/ProblemDefinitionScript.cs	(revision 11766)
+++ /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/New/Scripts/ProblemDefinitionScript.cs	(revision 11767)
@@ -59,9 +59,4 @@
     protected IProblemDefinition CompiledProblemDefinition {
       get {
-        //lock (locker) {
-        //  if (compiledProblemDefinition == null) {
-        //    Compile();
-        //  }
-        //}
         if (compiledProblemDefinition == null) throw new InvalidOperationException("The problem definition script is not compiled and cannot be used.");
         return compiledProblemDefinition;
Index: /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/New/Scripts/Templates/CompiledMultiObjectiveProblemDefinition.cs
===================================================================
--- /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/New/Scripts/Templates/CompiledMultiObjectiveProblemDefinition.cs	(revision 11766)
+++ /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/New/Scripts/Templates/CompiledMultiObjectiveProblemDefinition.cs	(revision 11767)
@@ -1,4 +1,11 @@
-﻿using HeuristicLab.Core;
+﻿using System;
+using System.Linq;
+using System.Collections.Generic;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Encodings.PermutationEncoding;
 using HeuristicLab.Optimization;
+using HeuristicLab.Problems.Programmable;
 
 namespace HeuristicLab.Problems.Programmable {
Index: /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/New/SingleObjectiveScriptableProblem.cs
===================================================================
--- /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/New/SingleObjectiveScriptableProblem.cs	(revision 11766)
+++ /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/New/SingleObjectiveScriptableProblem.cs	(revision 11767)
@@ -20,6 +20,6 @@
 #endregion
 
+using System;
 using System.Collections.Generic;
-using System.Linq;
 using HeuristicLab.Common;
 using HeuristicLab.Core;
@@ -49,5 +49,10 @@
       : base(original, cloner) {
       RegisterEvents();
-      ProblemScript.Compile();
+      try {
+        ProblemScript.Compile();
+      }
+      catch (InvalidOperationException) {
+        //Compilation error
+      }
     }
     public override IDeepCloneable Clone(Cloner cloner) { return new SingleObjectiveScriptableProblem(this, cloner); }
@@ -68,5 +73,10 @@
     private void AfterDeserialization() {
       RegisterEvents();
-      ProblemScript.Compile();
+      try {
+        ProblemScript.Compile();
+      }
+      catch (InvalidOperationException) {
+        //Compilation error
+      }
     }
 
Index: /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/MultiEncodingOperator.cs
===================================================================
--- /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/MultiEncodingOperator.cs	(revision 11766)
+++ /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/MultiEncodingOperator.cs	(revision 11767)
@@ -30,4 +30,5 @@
 
 namespace HeuristicLab.Problems.Programmable.Operators {
+  [StorableClass]
   public abstract class MultiEncodingOperator<T> : Operator, IMultiEncodingOperator where T : class,IOperator {
     private List<IEncoding> encodings = new List<IEncoding>();
