Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Classification/ClassificationEnsembleSolutionEstimatedClassValuesView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Classification/ClassificationEnsembleSolutionEstimatedClassValuesView.cs	(revision 6981)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Classification/ClassificationEnsembleSolutionEstimatedClassValuesView.cs	(revision 6982)
@@ -106,4 +106,7 @@
         values[i, 0] = row.ToString();
         values[i, 1] = target[i].ToString();
+        //display only indices and target values if no models are present
+        if (i >= estimatedClassValues.Length) continue;
+
         values[i, 2] = estimatedClassValues[i].ToString();
         values[i, 3] = (target[i] == estimatedClassValues[i]).ToString();
@@ -131,5 +134,4 @@
       matrix.SortableView = true;
       matrixView.Content = matrix;
-      UpdateColoringOfRows();
     }
 
@@ -162,19 +164,8 @@
         return;
       }
-      bool correctClassified = bool.Parse(matrixView.DataGridView[3, e.RowIndex].Value.ToString());
+      var cellValue = matrixView.DataGridView[3, e.RowIndex].Value.ToString();
+      if (string.IsNullOrEmpty(cellValue)) return;
+      bool correctClassified = bool.Parse(cellValue);
       matrixView.DataGridView.Rows[e.RowIndex].DefaultCellStyle.ForeColor = correctClassified ? Color.MediumSeaGreen : Color.Red;
-    }
-
-    private void UpdateColoringOfRows() {
-      if (InvokeRequired) {
-        Invoke((Action)UpdateColoringOfRows);
-        return;
-      }
-      //matrixView.DataGridView.SuspendRepaint();
-      //for (int i = 0; i < matrixView.DataGridView.Rows.Count; i++) {
-      //  bool correctClassified = bool.Parse(matrixView.Content.GetValue(i, 3));
-      //  matrixView.DataGridView.Rows[i].DefaultCellStyle.ForeColor = correctClassified ? Color.MediumSeaGreen : Color.Red;
-      //}
-      //matrixView.DataGridView.ResumeRepaint(true);
     }
   }
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionErrorCharacteristicsCurveView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionErrorCharacteristicsCurveView.cs	(revision 6981)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionErrorCharacteristicsCurveView.cs	(revision 6982)
@@ -133,4 +133,5 @@
       series.Points.Clear();
       residuals.Sort();
+      if (!residuals.Any() || residuals.All(double.IsNaN)) return;
 
       series.Points.AddXY(0, 0);
@@ -146,5 +147,5 @@
 
         point.XValue = residuals[i];
-        point.YValues[0] = ((double)i+1) / residuals.Count;
+        point.YValues[0] = ((double)i + 1) / residuals.Count;
         point.ToolTip = "Error: " + point.XValue + "\n" + "Samples: " + point.YValues[0];
         series.Points.Add(point);
@@ -206,5 +207,5 @@
 
     private double CalculateAreaOverCurve(Series series) {
-      if (series.Points.Count < 1) throw new ArgumentException("Could not calculate area under curve if less than 1 data points were given.");
+      if (series.Points.Count < 1) return 0;
 
       double auc = 0.0;
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionScatterPlotView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionScatterPlotView.cs	(revision 6981)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionScatterPlotView.cs	(revision 6982)
@@ -20,5 +20,4 @@
 #endregion
 using System;
-using System.Collections.Generic;
 using System.Drawing;
 using System.Linq;
@@ -172,6 +171,6 @@
         string targetVariableName = Content.ProblemData.TargetVariable;
 
-        IEnumerable<double> predictedValues = null;
-        IEnumerable<double> targetValues = null;
+        double[] predictedValues = null;
+        double[] targetValues = null;
         switch (series.Name) {
           case ALL_SERIES:
@@ -188,5 +187,6 @@
             break;
         }
-        series.Points.DataBindXY(predictedValues, "", targetValues, "");
+        if (predictedValues.Length == targetValues.Length)
+          series.Points.DataBindXY(predictedValues, "", targetValues, "");
         this.chart.Legends[series.Legend].ForeColor = Color.Black;
         UpdateCursorInterval();
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Classification/ClassificationEnsembleSolution.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Classification/ClassificationEnsembleSolution.cs	(revision 6981)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Classification/ClassificationEnsembleSolution.cs	(revision 6982)
@@ -201,4 +201,5 @@
 
     public IEnumerable<IEnumerable<double>> GetEstimatedClassValueVectors(Dataset dataset, IEnumerable<int> rows) {
+      if (!Model.Models.Any()) yield break;
       var estimatedValuesEnumerators = (from model in Model.Models
                                         select model.GetEstimatedClassValues(dataset, rows).GetEnumerator())
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/RegressionEnsembleSolution.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/RegressionEnsembleSolution.cs	(revision 6981)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/RegressionEnsembleSolution.cs	(revision 6982)
@@ -64,5 +64,5 @@
     private void AfterDeserialization() {
       foreach (var model in Model.Models) {
-        IRegressionProblemData problemData = (IRegressionProblemData) ProblemData.Clone();
+        IRegressionProblemData problemData = (IRegressionProblemData)ProblemData.Clone();
         problemData.TrainingPartition.Start = trainingPartitions[model].Start;
         problemData.TrainingPartition.End = trainingPartitions[model].End;
@@ -202,4 +202,5 @@
 
     public IEnumerable<IEnumerable<double>> GetEstimatedValueVectors(Dataset dataset, IEnumerable<int> rows) {
+      if (!Model.Models.Any()) yield break;
       var estimatedValuesEnumerators = (from model in Model.Models
                                         select model.GetEstimatedValues(dataset, rows).GetEnumerator())
