Index: branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/DataAnalysisProblem.cs
===================================================================
--- branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/DataAnalysisProblem.cs	(revision 18114)
+++ branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/DataAnalysisProblem.cs	(revision 18117)
@@ -92,5 +92,5 @@
 
     #region Import & Export
-    public void Load(T data) {
+    public virtual void Load(T data) {
       Name = data.Name;
       Description = data.Description;
@@ -98,5 +98,5 @@
     }
 
-    public T Export() {
+    public virtual T Export() {
       return ProblemData;
     }
Index: branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/ShapeConstrainedRegressionProblem.cs
===================================================================
--- branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/ShapeConstrainedRegressionProblem.cs	(revision 18114)
+++ branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/ShapeConstrainedRegressionProblem.cs	(revision 18117)
@@ -24,8 +24,8 @@
 using HeuristicLab.Core;
 
-namespace HeuristicLab.Problems.DataAnalysis{
+namespace HeuristicLab.Problems.DataAnalysis {
   [StorableType("B53C4C71-3715-4BB1-9A95-4E969D8135C6")]
   [Item("Shape-constrained Regression Problem", "A regression problem with shape constraints.")]
-  public class ShapeConstrainedRegressionProblem : DataAnalysisProblem<IShapeConstrainedRegressionProblemData>, IShapeConstrainedRegressionProblem {
+  public class ShapeConstrainedRegressionProblem : DataAnalysisProblem<IRegressionProblemData>, IShapeConstrainedRegressionProblem {
     [StorableConstructor]
     protected ShapeConstrainedRegressionProblem(StorableConstructorFlag _) : base(_) { }
@@ -33,5 +33,23 @@
     public override IDeepCloneable Clone(Cloner cloner) { return new ShapeConstrainedRegressionProblem(this, cloner); }
 
+    public ShapeConstrainedRegressionProblemData ShapeConstrainedRegressionProblemData {
+      get => (ShapeConstrainedRegressionProblemData)ProblemData;
+      set => ProblemData = value;
+    }
     public ShapeConstrainedRegressionProblem() : base(new ShapeConstrainedRegressionProblemData()) { }
+
+
+    public override void Load(IRegressionProblemData data) {
+      if (data is ShapeConstrainedRegressionProblemData scProblemData) {
+        // use directly
+      } else {
+        scProblemData = new ShapeConstrainedRegressionProblemData(data.Dataset, data.AllowedInputVariables, data.TargetVariable,
+                                                                      data.TrainingPartition, data.TestPartition) {
+          Name = data.Name,
+          Description = data.Description
+        };
+      }
+      base.Load(scProblemData);
+    }
   }
 }
Index: branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/ShapeConstrainedRegressionProblemData.cs
===================================================================
--- branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/ShapeConstrainedRegressionProblemData.cs	(revision 18114)
+++ branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/ShapeConstrainedRegressionProblemData.cs	(revision 18117)
@@ -145,5 +145,5 @@
       : this(regressionProblemData.Dataset, regressionProblemData.AllowedInputVariables, regressionProblemData.TargetVariable,
           regressionProblemData.TrainingPartition, regressionProblemData.TestPartition, regressionProblemData.Transformations,
-          (regressionProblemData is ShapeConstrainedRegressionProblemData) ? ((ShapeConstrainedRegressionProblemData)regressionProblemData).ShapeConstraints : null, 
+          (regressionProblemData is ShapeConstrainedRegressionProblemData) ? ((ShapeConstrainedRegressionProblemData)regressionProblemData).ShapeConstraints : null,
           regressionProblemData.VariableRanges) {
     }
@@ -159,5 +159,8 @@
       if (sc == null) sc = new ShapeConstraints();
       Parameters.Add(new FixedValueParameter<ShapeConstraints>(ShapeConstraintsParameterName, "Specifies the shape constraints for the regression problem.", (ShapeConstraints)sc.Clone()));
-
+      if (variableRanges != null) {
+        foreach (var entry in variableRanges.GetVariableIntervals())
+          VariableRanges.SetInterval(entry.Item1, entry.Item2);
+      }
       RegisterEventHandlers();
     }
Index: branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/Regression/IShapeConstrainedRegressionProblem.cs
===================================================================
--- branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/Regression/IShapeConstrainedRegressionProblem.cs	(revision 18114)
+++ branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/Regression/IShapeConstrainedRegressionProblem.cs	(revision 18117)
@@ -24,5 +24,6 @@
 namespace HeuristicLab.Problems.DataAnalysis {
   [StorableType("C6E9D32A-7727-487E-859C-DF24EDCC5922")]
-  public interface  IShapeConstrainedRegressionProblem : IDataAnalysisProblem<IShapeConstrainedRegressionProblemData> {
+  public interface IShapeConstrainedRegressionProblem : IRegressionProblem {
+    ShapeConstrainedRegressionProblemData ShapeConstrainedRegressionProblemData { get; set; }
   }
 }
