Index: /trunk/HeuristicLab.Problems.DataAnalysis.Views/3.4/Classification/ClassificationSolutionVariableImpactsView.Designer.cs
===================================================================
--- /trunk/HeuristicLab.Problems.DataAnalysis.Views/3.4/Classification/ClassificationSolutionVariableImpactsView.Designer.cs	(revision 17275)
+++ /trunk/HeuristicLab.Problems.DataAnalysis.Views/3.4/Classification/ClassificationSolutionVariableImpactsView.Designer.cs	(revision 17276)
@@ -192,5 +192,4 @@
       this.Name = "ClassificationSolutionVariableImpactsView";
       this.Size = new System.Drawing.Size(712, 365);
-      this.VisibleChanged += new System.EventHandler(this.ClassificationSolutionVariableImpactsView_VisibleChanged);
       this.ResumeLayout(false);
       this.PerformLayout();
Index: /trunk/HeuristicLab.Problems.DataAnalysis.Views/3.4/Classification/ClassificationSolutionVariableImpactsView.cs
===================================================================
--- /trunk/HeuristicLab.Problems.DataAnalysis.Views/3.4/Classification/ClassificationSolutionVariableImpactsView.cs	(revision 17275)
+++ /trunk/HeuristicLab.Problems.DataAnalysis.Views/3.4/Classification/ClassificationSolutionVariableImpactsView.cs	(revision 17276)
@@ -40,4 +40,5 @@
     private CancellationTokenSource cancellationToken = new CancellationTokenSource();
     private List<Tuple<string, double>> rawVariableImpacts = new List<Tuple<string, double>>();
+    private bool attachedToProgress = false;
 
     public new IClassificationSolution Content {
@@ -86,6 +87,12 @@
       }
     }
-    private void ClassificationSolutionVariableImpactsView_VisibleChanged(object sender, EventArgs e) {
+    protected override void OnHidden(EventArgs e) {
+      base.OnHidden(e);
       cancellationToken.Cancel();
+
+      if (attachedToProgress) {
+        Progress.Hide(this);
+        attachedToProgress = false;
+      }
     }
 
@@ -126,4 +133,5 @@
       variableImpactsArrayView.Caption = Content.Name + " Variable Impacts";
       progress = Progress.Show(this, "Calculating variable impacts for " + Content.Name);
+      attachedToProgress = true;
       cancellationToken = new CancellationTokenSource();
 
@@ -144,5 +152,8 @@
         UpdateOrdering();
       } finally {
-        Progress.Hide(this);
+        if (attachedToProgress) {
+          Progress.Hide(this);
+          attachedToProgress = false;
+        }
       }
     }
Index: /trunk/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionVariableImpactsView.Designer.cs
===================================================================
--- /trunk/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionVariableImpactsView.Designer.cs	(revision 17275)
+++ /trunk/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionVariableImpactsView.Designer.cs	(revision 17276)
@@ -192,5 +192,4 @@
       this.Name = "RegressionSolutionVariableImpactsView";
       this.Size = new System.Drawing.Size(712, 365);
-      this.VisibleChanged += new System.EventHandler(this.RegressionSolutionVariableImpactsView_VisibleChanged);
       this.ResumeLayout(false);
       this.PerformLayout();
Index: /trunk/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionVariableImpactsView.cs
===================================================================
--- /trunk/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionVariableImpactsView.cs	(revision 17275)
+++ /trunk/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionVariableImpactsView.cs	(revision 17276)
@@ -40,4 +40,5 @@
     private CancellationTokenSource cancellationToken = new CancellationTokenSource();
     private List<Tuple<string, double>> rawVariableImpacts = new List<Tuple<string, double>>();
+    private bool attachedToProgress = false;
 
     public new IRegressionSolution Content {
@@ -86,6 +87,13 @@
       }
     }
-    private void RegressionSolutionVariableImpactsView_VisibleChanged(object sender, EventArgs e) {
+
+    protected override void OnHidden(EventArgs e) {
+      base.OnHidden(e);
       cancellationToken.Cancel();
+
+      if (attachedToProgress) {
+        Progress.Hide(this);
+        attachedToProgress = false;
+      }
     }
 
@@ -124,4 +132,5 @@
       variableImpactsArrayView.Caption = Content.Name + " Variable Impacts";
       var progress = Progress.Show(this, "Calculating variable impacts for " + Content.Name);
+      attachedToProgress = true;
       cancellationToken = new CancellationTokenSource();
 
@@ -141,7 +150,9 @@
         rawVariableImpacts.AddRange(impacts);
         UpdateOrdering();
-      }
-      finally {
-        Progress.Hide(this);
+      } finally {
+        if (attachedToProgress) {
+          Progress.Hide(this);
+          attachedToProgress = false;
+        }
       }
     }
