Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/PreprocessingContext.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/PreprocessingContext.cs	(revision 10694)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/PreprocessingContext.cs	(revision 10695)
@@ -93,15 +93,4 @@
       problem.ProblemDataParameter.ActualValue = data;
       problem.Name = "Preprocessed " + problem.Name;
-
-      var symbolicProblem = problem as ISymbolicDataAnalysisProblem;
-      if (symbolicProblem != null) {
-        var tree = new SymbolicExpressionTree(new ProgramRootSymbol().CreateTreeNode());
-        var variableNode = (VariableTreeNode)new Variable("dummy", "dummy description").CreateTreeNode();
-        variableNode.VariableName = "dummy";
-        tree.Root.AddSubtree(variableNode);
-
-        symbolicProblem.TransformationsParameter.Value.Add(tree);
-      }
-
       return clone;
     }
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/PreprocessingData.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/PreprocessingData.cs	(revision 10694)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/PreprocessingData.cs	(revision 10695)
@@ -39,4 +39,6 @@
 
     protected double trainingToTestRatio;
+
+    protected IList<ITransformation> transformations;
 
     protected PreprocessingData(PreprocessingData original, Cloner cloner)
@@ -161,4 +163,8 @@
     }
 
+    public IList<ITransformation> Transformations {
+      get { return transformations; }
+    }
+
     public string GetVariableName(int columnIndex) {
       return variableNames[columnIndex];
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IPreprocessingData.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IPreprocessingData.cs	(revision 10694)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IPreprocessingData.cs	(revision 10695)
@@ -51,4 +51,6 @@
     IntRange TestPartition { get; }
 
+    IList<ITransformation> Transformations { get; }
+
     IEnumerable<string> VariableNames { get; }
     string GetVariableName(int columnIndex);
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/ProblemDataCreator.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/ProblemDataCreator.cs	(revision 10694)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/ProblemDataCreator.cs	(revision 10695)
@@ -29,4 +29,13 @@
     private readonly IPreprocessingContext context;
 
+    private Dataset ExportedDataset {
+      get { return exporteDataset ?? (exporteDataset = context.Data.ExportToDataset()); }
+    }
+    private Dataset exporteDataset;
+
+    private IEnumerable<string> InputVariables { get { return context.Data.VariableNames; } }
+    private IEnumerable<ITransformation> Transformations { get { return context.Data.Transformations; } }
+
+
     public ProblemDataCreator(IPreprocessingContext context) {
       this.context = context;
@@ -38,13 +47,10 @@
       IDataAnalysisProblemData problemData = null;
 
-      var dataSet = context.Data.ExportToDataset();
-      var inputVariables = context.Data.VariableNames;
-
       if (oldProblemData is RegressionProblemData) {
-        problemData = CreateRegressionData((RegressionProblemData)oldProblemData, dataSet, inputVariables);
+        problemData = CreateRegressionData((RegressionProblemData)oldProblemData);
       } else if (oldProblemData is ClassificationProblemData) {
-        problemData = CreateClassificationData((ClassificationProblemData)oldProblemData, dataSet, inputVariables);
+        problemData = CreateClassificationData((ClassificationProblemData)oldProblemData);
       } else if (oldProblemData is ClusteringProblemData) {
-        problemData = CreateClusteringData((ClusteringProblemData)oldProblemData, dataSet, inputVariables);
+        problemData = CreateClusteringData((ClusteringProblemData)oldProblemData);
       } else {
         throw new NotImplementedException("The type of the DataAnalysisProblemData is not supported.");
@@ -56,18 +62,18 @@
     }
 
-    private IDataAnalysisProblemData CreateRegressionData(RegressionProblemData oldProblemData, Dataset dataSet, IEnumerable<string> inputVariables) {
+    private IDataAnalysisProblemData CreateRegressionData(RegressionProblemData oldProblemData) {
       var targetVariable = oldProblemData.TargetVariable;
       // target variable must be double and must exist in the new dataset
-      return new RegressionProblemData(dataSet, inputVariables, targetVariable);
+      return new RegressionProblemData(ExportedDataset, InputVariables, targetVariable, Transformations);
     }
 
-    private IDataAnalysisProblemData CreateClassificationData(ClassificationProblemData oldProblemData, Dataset dataSet, IEnumerable<string> inputVariables) {
+    private IDataAnalysisProblemData CreateClassificationData(ClassificationProblemData oldProblemData) {
       var targetVariable = oldProblemData.TargetVariable;
       // target variable must be double and must exist in the new dataset
-      return new ClassificationProblemData(dataSet, inputVariables, targetVariable);
+      return new ClassificationProblemData(ExportedDataset, InputVariables, targetVariable, Transformations);
     }
 
-    private IDataAnalysisProblemData CreateClusteringData(ClusteringProblemData oldProblemData, Dataset dataSet, IEnumerable<string> inputVariables) {
-      return new ClusteringProblemData(dataSet, inputVariables);
+    private IDataAnalysisProblemData CreateClusteringData(ClusteringProblemData oldProblemData) {
+      return new ClusteringProblemData(ExportedDataset, InputVariables, Transformations);
     }
 
