Index: /trunk/sources/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingDataTableView.cs
===================================================================
--- /trunk/sources/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingDataTableView.cs	(revision 13516)
+++ /trunk/sources/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingDataTableView.cs	(revision 13517)
@@ -745,5 +745,5 @@
 
       //  shift the chart to the left so the bars are placed on the intervals
-      if (Classification != null || valueFrequencies.First().Item1 < doubleRange.First()) {
+      if (Classification != null || (valueFrequencies.Any() && valueFrequencies.First().Item1 < doubleRange.First())) {
         series.Points.Add(new DataPoint(min - intervalWidth, 0));
         series.Points.Add(new DataPoint(max + intervalWidth, 0));
Index: /trunk/sources/HeuristicLab.DataPreprocessing/3.4/Content/CorrelationMatrixContent.cs
===================================================================
--- /trunk/sources/HeuristicLab.DataPreprocessing/3.4/Content/CorrelationMatrixContent.cs	(revision 13516)
+++ /trunk/sources/HeuristicLab.DataPreprocessing/3.4/Content/CorrelationMatrixContent.cs	(revision 13517)
@@ -39,7 +39,9 @@
     public DataAnalysisProblemData ProblemData {
       get {
-        return (DataAnalysisProblemData)Context.CreateNewProblemData();
-        //var creator = new ProblemDataCreator(Context);
-        //return (DataAnalysisProblemData)creator.CreateProblemData();
+        var problemData = (DataAnalysisProblemData)Context.CreateNewProblemData();
+        foreach (var input in problemData.InputVariables)
+          problemData.InputVariables.SetItemCheckedState(input, true);
+        // CorrelationView hides non-input columns per default
+        return problemData;
       }
     }
Index: /trunk/sources/HeuristicLab.DataPreprocessing/3.4/Data/TransactionalPreprocessingData.cs
===================================================================
--- /trunk/sources/HeuristicLab.DataPreprocessing/3.4/Data/TransactionalPreprocessingData.cs	(revision 13516)
+++ /trunk/sources/HeuristicLab.DataPreprocessing/3.4/Data/TransactionalPreprocessingData.cs	(revision 13517)
@@ -216,4 +216,48 @@
     }
 
+
+    public override void InsertRow(int rowIndex) {
+      SaveSnapshot(DataPreprocessingChangedEventType.DeleteRow, -1, rowIndex);
+      foreach (IList column in variableValues) {
+        Type type = column.GetType().GetGenericArguments()[0];
+        column.Insert(rowIndex, type.IsValueType ? Activator.CreateInstance(type) : null);
+      }
+      if (TrainingPartition.Start <= rowIndex && rowIndex <= TrainingPartition.End) {
+        TrainingPartition.End++;
+        if (TrainingPartition.End <= TestPartition.Start) {
+          TestPartition.Start++;
+          TestPartition.End++;
+        }
+      } else if (TestPartition.Start <= rowIndex && rowIndex <= TestPartition.End) {
+        TestPartition.End++;
+        if (TestPartition.End <= TrainingPartition.Start) {
+          TestPartition.Start++;
+          TestPartition.End++;
+        }
+      }
+      if (!IsInTransaction)
+        OnChanged(DataPreprocessingChangedEventType.AddRow, -1, rowIndex);
+    }
+    public override void DeleteRow(int rowIndex) {
+      SaveSnapshot(DataPreprocessingChangedEventType.AddRow, -1, rowIndex);
+      foreach (IList column in variableValues) {
+        column.RemoveAt(rowIndex);
+      }
+      if (TrainingPartition.Start <= rowIndex && rowIndex <= TrainingPartition.End) {
+        TrainingPartition.End--;
+        if (TrainingPartition.End <= TestPartition.Start) {
+          TestPartition.Start--;
+          TestPartition.End--;
+        }
+      } else if (TestPartition.Start <= rowIndex && rowIndex <= TestPartition.End) {
+        TestPartition.End--;
+        if (TestPartition.End <= TrainingPartition.Start) {
+          TestPartition.Start--;
+          TestPartition.End--;
+        }
+      }
+      if (!IsInTransaction)
+        OnChanged(DataPreprocessingChangedEventType.DeleteRow, -1, rowIndex);
+    }
     public override void DeleteRowsWithIndices(IEnumerable<int> rows) {
       SaveSnapshot(DataPreprocessingChangedEventType.AddRow, -1, -1);
@@ -222,29 +266,20 @@
           column.RemoveAt(rowIndex);
         }
+        if (TrainingPartition.Start <= rowIndex && rowIndex <= TrainingPartition.End) {
+          TrainingPartition.End--;
+          if (TrainingPartition.End <= TestPartition.Start) {
+            TestPartition.Start--;
+            TestPartition.End--;
+          }
+        } else if (TestPartition.Start <= rowIndex && rowIndex <= TestPartition.End) {
+          TestPartition.End--;
+          if (TestPartition.End <= TrainingPartition.Start) {
+            TestPartition.Start--;
+            TestPartition.End--;
+          }
+        }
       }
       if (!IsInTransaction)
         OnChanged(DataPreprocessingChangedEventType.DeleteRow, -1, -1);
-      ResetPartitions();
-    }
-
-    public override void InsertRow(int rowIndex) {
-      SaveSnapshot(DataPreprocessingChangedEventType.DeleteRow, -1, rowIndex);
-      foreach (IList column in variableValues) {
-        Type type = column.GetType().GetGenericArguments()[0];
-        column.Insert(rowIndex, type.IsValueType ? Activator.CreateInstance(type) : null);
-      }
-      if (!IsInTransaction)
-        OnChanged(DataPreprocessingChangedEventType.AddRow, -1, rowIndex);
-      ResetPartitions();
-    }
-
-    public override void DeleteRow(int rowIndex) {
-      SaveSnapshot(DataPreprocessingChangedEventType.AddRow, -1, rowIndex);
-      foreach (IList column in variableValues) {
-        column.RemoveAt(rowIndex);
-      }
-      if (!IsInTransaction)
-        OnChanged(DataPreprocessingChangedEventType.DeleteRow, -1, rowIndex);
-      ResetPartitions();
     }
 
@@ -308,11 +343,4 @@
       if (listeners != null) listeners(this, EventArgs.Empty);
     }
-
-
-    private void ResetPartitions() {
-      TrainingPartition = new IntRange();
-      TestPartition = new IntRange();
-    }
-
     #endregion
 
