Index: /stable/HeuristicLab.Algorithms.DataAnalysis/3.4/CrossValidation.cs
===================================================================
--- /stable/HeuristicLab.Algorithms.DataAnalysis/3.4/CrossValidation.cs	(revision 18230)
+++ /stable/HeuristicLab.Algorithms.DataAnalysis/3.4/CrossValidation.cs	(revision 18231)
@@ -35,4 +35,6 @@
 using HeuristicLab.Problems.DataAnalysis.Symbolic;
 using HeuristicLab.Random;
+using HeuristicLab.Problems.DataAnalysis.Symbolic.Regression;
+using HeuristicLab.Problems.DataAnalysis.Symbolic.Classification;
 
 namespace HeuristicLab.Algorithms.DataAnalysis {
@@ -338,4 +340,14 @@
               symbolicProblem.FitnessCalculationPartition.End = SamplesEnd.Value;
             }
+
+            // We need to set the estimation limits because they are recalculated by the problem
+            // whenever the data partitions change.
+            // Instead of explicitly handling all types we could also check the parameters-collection 
+            // for a parameter with name "EstimationLimits".
+            SetEstimationLimits(problem, new[] { typeof(SymbolicRegressionSingleObjectiveProblem),
+                                                 typeof(SymbolicRegressionMultiObjectiveProblem),
+                                                 typeof(SymbolicClassificationSingleObjectiveProblem),
+                                                 typeof(SymbolicClassificationMultiObjectiveProblem) });
+
             clonedAlgorithm.Prepare();
             clonedAlgorithms.Add(clonedAlgorithm);
@@ -809,4 +821,19 @@
     }
     #endregion
+
+    #region helper
+
+    private void SetEstimationLimits(IDataAnalysisProblem problem, Type[] types) {
+      foreach (var type in types) {
+        if (type.IsAssignableFrom(problem.GetType())) {
+          var originalLimits = (DoubleLimit)Problem.Parameters["EstimationLimits"].ActualValue;  // problem is a clone of Problem
+          var limits = (DoubleLimit)problem.Parameters["EstimationLimits"].ActualValue;
+          limits.Lower = originalLimits.Lower;
+          limits.Upper = originalLimits.Upper;
+        }
+      }
+    }
+
+    #endregion 
   }
 }
Index: /stable/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/CrossValidationTest.cs
===================================================================
--- /stable/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/CrossValidationTest.cs	(revision 18231)
+++ /stable/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/CrossValidationTest.cs	(revision 18231)
@@ -0,0 +1,66 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 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 System.Linq;
+using HeuristicLab.Optimization;
+using HeuristicLab.Problems.DataAnalysis;
+using HeuristicLab.Problems.Instances.DataAnalysis;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using HeuristicLab.Problems.DataAnalysis.Symbolic.Regression;
+
+namespace HeuristicLab.Algorithms.DataAnalysis.Tests {
+  [TestClass]
+  public class CrossValidationTest {
+    [TestMethod]
+    [TestCategory("Algorithms.DataAnalysis")]
+    [TestProperty("Time", "medium")]
+    public void RunCrossValidationTest() {
+      var instanceProvider = new VariousInstanceProvider();
+      
+      var poly10 = instanceProvider.LoadData(instanceProvider.GetDataDescriptors().Single(x => x.Name.StartsWith("Poly")));
+      var symRegProb = new SymbolicRegressionSingleObjectiveProblem();
+      symRegProb.Load(poly10);
+      symRegProb.EstimationLimits.Lower = -1;
+      symRegProb.EstimationLimits.Upper = 1;
+
+      var ga = new GeneticAlgorithm.GeneticAlgorithm();
+      ga.Problem = symRegProb;
+      // minimal configuration
+      // we only need to check how estimation limits are set in the CV folds.
+      ga.PopulationSize.Value = 10;
+      ga.MaximumGenerations.Value = 1;
+
+
+      var cv = new CrossValidation();
+      cv.Algorithm = ga;
+      cv.Start();
+
+      Assert.AreEqual(Core.ExecutionState.Stopped, cv.ExecutionState);
+      IResult cvFoldsResult;
+      Assert.IsTrue(cv.Results.TryGetValue("CrossValidation Folds", out cvFoldsResult));
+      var runs = (RunCollection)cvFoldsResult.Value;
+      var foldEstimationLimits = (DoubleLimit)runs.First().Parameters["EstimationLimits"];
+
+      Assert.AreEqual(symRegProb.EstimationLimits.Lower, foldEstimationLimits.Lower); // -1
+      Assert.AreEqual(symRegProb.EstimationLimits.Upper, foldEstimationLimits.Upper); // 1
+    }
+  }
+}
Index: /stable/HeuristicLab.Tests/HeuristicLab.Tests.csproj
===================================================================
--- /stable/HeuristicLab.Tests/HeuristicLab.Tests.csproj	(revision 18230)
+++ /stable/HeuristicLab.Tests/HeuristicLab.Tests.csproj	(revision 18231)
@@ -493,4 +493,5 @@
     <Compile Include="HeuristicLab-3.3\ToStringTest.cs" />
     <Compile Include="HeuristicLab.Algorithms.DataAnalysis-3.4\GradientBoostingTest.cs" />
+    <Compile Include="HeuristicLab.Algorithms.DataAnalysis-3.4\CrossValidationTest.cs" />
     <Compile Include="HeuristicLab.Algorithms.DataAnalysis-3.4\NcaAlgorithmTest.cs" />
     <Compile Include="HeuristicLab.Algorithms.DataAnalysis-3.4\SupportVectorMachineTest.cs" />
