Index: branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/ChartAnalysisView.cs
===================================================================
--- branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/ChartAnalysisView.cs	(revision 11378)
+++ branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/ChartAnalysisView.cs	(revision 11379)
@@ -86,7 +86,4 @@
 
     private void UpdateComboboxes() {
-      dataTableComboBox.Items.Clear();
-      dataRowComboBox.Items.Clear();
-
       if (Content != null) {
         UpdateDataTableComboBox();
@@ -200,5 +197,8 @@
       MainFormManager.GetMainForm<MainForm.WindowsForms.MainForm>().AddOperationProgressToView(this, "Adding fitted lines to charts...");
 
-      var task = Task.Factory.StartNew(AddLineToChart);
+      string resultName = (string)dataTableComboBox.SelectedItem;
+      string rowName = (string)dataRowComboBox.SelectedItem;
+
+      var task = Task.Factory.StartNew(() => AddLineToChart(resultName, rowName));
 
       task.ContinueWith((t) => {
@@ -212,8 +212,5 @@
     }
 
-    private void AddLineToChart() {
-      string resultName = (string)dataTableComboBox.SelectedItem;
-      string rowName = (string)dataRowComboBox.SelectedItem;
-
+    private void AddLineToChart(string resultName, string rowName) {
       foreach (IRun run in runs) {
         DataTable resTable = (DataTable)run.Results[resultName];
@@ -253,4 +250,6 @@
 
     private void UpdateDataRowComboBox() {
+      string selectedItem = (string)this.dataRowComboBox.SelectedItem;
+
       dataRowComboBox.Items.Clear();
       var resultName = (string)dataTableComboBox.SelectedItem;
@@ -263,8 +262,14 @@
 
       dataRowComboBox.Items.AddRange(rowNames);
-      if (dataRowComboBox.Items.Count > 0) dataRowComboBox.SelectedItem = dataRowComboBox.Items[0];
+      if (selectedItem != null && dataRowComboBox.Items.Contains(selectedItem)) {
+        dataRowComboBox.SelectedItem = selectedItem;
+      } else if (dataRowComboBox.Items.Count > 0) {
+        dataRowComboBox.SelectedItem = dataRowComboBox.Items[0];
+      }
     }
 
     private void UpdateDataTableComboBox() {
+      string selectedItem = (string)this.dataTableComboBox.SelectedItem;
+
       dataTableComboBox.Items.Clear();
       var dataTables = (from run in Content
@@ -274,5 +279,9 @@
 
       dataTableComboBox.Items.AddRange(dataTables);
-      if (dataTableComboBox.Items.Count > 0) dataTableComboBox.SelectedItem = dataTableComboBox.Items[0];
+      if (selectedItem != null && dataTableComboBox.Items.Contains(selectedItem)) {
+        dataTableComboBox.SelectedItem = selectedItem;
+      } else if (dataTableComboBox.Items.Count > 0) {
+        dataTableComboBox.SelectedItem = dataTableComboBox.Items[0];
+      }
     }
 
@@ -280,5 +289,8 @@
       progress = MainFormManager.GetMainForm<MainForm.WindowsForms.MainForm>().AddOperationProgressToView(this, "Calculating values...");
 
-      var task = Task.Factory.StartNew(RebuildDataTable);
+      string resultName = (string)dataTableComboBox.SelectedItem;
+      string rowName = (string)dataRowComboBox.SelectedItem;
+
+      var task = Task.Factory.StartNew(() => RebuildDataTable(resultName, rowName));
 
       task.ContinueWith((t) => {
@@ -292,7 +304,5 @@
     }
 
-    private void RebuildDataTable() {
-      string resultName = (string)dataTableComboBox.SelectedItem;
-      string rowName = (string)dataRowComboBox.SelectedItem;
+    private void RebuildDataTable(string resultName, string rowName) {
       LinearLeastSquaresFitting llsFitting = new LinearLeastSquaresFitting();
       LogFitting logFitting = new LogFitting();
Index: branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/CorrelationView.cs
===================================================================
--- branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/CorrelationView.cs	(revision 11378)
+++ branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/CorrelationView.cs	(revision 11379)
@@ -140,12 +140,16 @@
 
     private void Content_CollectionReset(object sender, HeuristicLab.Collections.CollectionItemsChangedEventArgs<IRun> e) {
+      DeregisterRunEvents(e.OldItems);
+      RegisterRunEvents(e.Items);
       UpdateUI();
     }
 
     private void Content_ItemsRemoved(object sender, HeuristicLab.Collections.CollectionItemsChangedEventArgs<IRun> e) {
+      DeregisterRunEvents(e.Items);
       UpdateUI();
     }
 
     private void Content_ItemsAdded(object sender, HeuristicLab.Collections.CollectionItemsChangedEventArgs<IRun> e) {
+      RegisterRunEvents(e.Items);
       UpdateUI();
     }
