Index: branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SlidingWindow/SlidingWindowAnalyzer.cs
===================================================================
--- branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SlidingWindow/SlidingWindowAnalyzer.cs	(revision 9165)
+++ branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SlidingWindow/SlidingWindowAnalyzer.cs	(revision 9707)
@@ -23,4 +23,6 @@
 using HeuristicLab.Core;
 using HeuristicLab.Data;
+using HeuristicLab.Operators;
+using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
@@ -31,4 +33,5 @@
   public abstract class SlidingWindowAnalyzer : SymbolicDataAnalysisAnalyzer {
     private const string ProblemDataParameterName = "ProblemData";
+    private const string EvaluatorParameterName = "Evaluator";
     private const string FitnessCalculationPartitionParameterName = "FitnessCalculationPartition";
     private const string ValidationPartitionParameterName = "ValidationPartition";
@@ -64,4 +67,7 @@
       get { return (ILookupParameter<BoolValue>)Parameters[TerminateSlidingWindowParameterName]; }
     }
+    public ILookupParameter<IEvaluator> EvaluatorParameter {
+      get { return (ILookupParameter<IEvaluator>)Parameters[EvaluatorParameterName]; }
+    }
     #endregion
 
@@ -83,4 +89,5 @@
       : base() {
       Parameters.Add(new ValueLookupParameter<IDataAnalysisProblemData>(ProblemDataParameterName, "The problem data on which the symbolic data analysis solution should be evaluated."));
+      Parameters.Add(new LookupParameter<IEvaluator>(EvaluatorParameterName, ""));
       Parameters.Add(new LookupParameter<IntRange>(FitnessCalculationPartitionParameterName, ""));
       Parameters.Add(new LookupParameter<IntRange>(ValidationPartitionParameterName, ""));
@@ -92,4 +99,10 @@
 
       ProblemDataParameter.Hidden = true;
+    }
+
+    [StorableHook(HookType.AfterDeserialization)]
+    private void AfterDeserialization() {
+      if (!Parameters.ContainsKey(EvaluatorParameterName))
+        Parameters.Add(new LookupParameter<IEvaluator>(EvaluatorParameterName, ""));
     }
 
@@ -115,14 +128,21 @@
 
       //check if update should be performed or if the algorithm should stop
-      if (fitnessPartition.End > ProblemDataParameter.ActualValue.TrainingPartition.End)
+      if (fitnessPartition.End > ProblemDataParameter.ActualValue.TrainingPartition.End) {
         TerminateSlidingWindowParameter.ActualValue.Value = true;
-      else {
-        FitnessCalculationPartitionParameter.ActualValue.Start = fitnessPartition.Start;
-        FitnessCalculationPartitionParameter.ActualValue.End = fitnessPartition.End;
-        ValidationPartitionParameter.ActualValue.Start = fitnessPartition.End;
-        ValidationPartitionParameter.ActualValue.End = ValidationPartitionParameter.ActualValue.Start + ValidiationSlidingWindowSize.Value;
+        return base.Apply();
       }
 
-      return base.Apply();
+      FitnessCalculationPartitionParameter.ActualValue.Start = fitnessPartition.Start;
+      FitnessCalculationPartitionParameter.ActualValue.End = fitnessPartition.End;
+      ValidationPartitionParameter.ActualValue.Start = fitnessPartition.End;
+      ValidationPartitionParameter.ActualValue.End = ValidationPartitionParameter.ActualValue.Start + ValidiationSlidingWindowSize.Value;
+
+      //reevaluate all individuals with new sliding window
+      UniformSubScopesProcessor subScopesProcessor = new UniformSubScopesProcessor();
+      subScopesProcessor.Operator = EvaluatorParameter.ActualValue;
+      subScopesProcessor.Depth.Value = 1;
+      var operation = ExecutionContext.CreateChildOperation(subScopesProcessor);
+      var successor = base.Apply();
+      return new OperationCollection() { operation, successor };
     }
 
Index: branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SlidingWindow/SlidingWindowVisualizer.cs
===================================================================
--- branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SlidingWindow/SlidingWindowVisualizer.cs	(revision 9165)
+++ branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SlidingWindow/SlidingWindowVisualizer.cs	(revision 9707)
@@ -85,5 +85,5 @@
         else throw new NotSupportedException();
 
-        var targetData = ProblemDataParameter.ActualValue.Dataset.GetDoubleValues(targetVariable);
+        var targetData = ProblemDataParameter.ActualValue.Dataset.GetDoubleValues(targetVariable, ProblemDataParameter.ActualValue.TrainingIndices);
         slidingWindowData = new SlidingWindowData(FitnessCalculationPartitionParameter.ActualValue, targetData);
         results.Add(new Result(SlidingWindowDataResultName, slidingWindowData));
@@ -96,6 +96,6 @@
         var classificationSolution = trainingSolution as IClassificationSolution;
 
-        if (regressionSolution != null) estimatedValues = regressionSolution.EstimatedValues;
-        if (classificationSolution != null) estimatedValues = classificationSolution.EstimatedClassValues;
+        if (regressionSolution != null) estimatedValues = regressionSolution.EstimatedTrainingValues;
+        if (classificationSolution != null) estimatedValues = classificationSolution.EstimatedTrainingClassValues;
       }
 
