Index: branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/MediumAnalysisPage.Designer.cs
===================================================================
--- branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/MediumAnalysisPage.Designer.cs	(revision 7953)
+++ branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/MediumAnalysisPage.Designer.cs	(revision 8024)
@@ -25,9 +25,10 @@
     private void InitializeComponent() {
       this.progressBar1 = new System.Windows.Forms.ProgressBar();
-      this.label1 = new System.Windows.Forms.Label();
+      this.lblProgress = new System.Windows.Forms.Label();
       this.SuspendLayout();
       // 
       // wizardBanner
       // 
+      this.wizardBanner.Size = new System.Drawing.Size(640, 81);
       this.wizardBanner.Subtitle = "Generating experiment ...";
       this.wizardBanner.Title = "Medium Analysis";
@@ -35,29 +36,32 @@
       // progressBar1
       // 
-      this.progressBar1.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.progressBar1.Location = new System.Drawing.Point(0, 143);
+      this.progressBar1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
+      this.progressBar1.Location = new System.Drawing.Point(30, 263);
       this.progressBar1.Name = "progressBar1";
-      this.progressBar1.Size = new System.Drawing.Size(320, 23);
+      this.progressBar1.Size = new System.Drawing.Size(580, 23);
       this.progressBar1.TabIndex = 2;
       // 
-      // label1
+      // lblProgress
       // 
-      this.label1.AutoSize = true;
-      this.label1.Location = new System.Drawing.Point(0, 124);
-      this.label1.Name = "label1";
-      this.label1.Size = new System.Drawing.Size(35, 13);
-      this.label1.TabIndex = 3;
-      this.label1.Text = "label1";
+      this.lblProgress.Anchor = System.Windows.Forms.AnchorStyles.Left;
+      this.lblProgress.AutoSize = true;
+      this.lblProgress.Location = new System.Drawing.Point(27, 230);
+      this.lblProgress.Name = "lblProgress";
+      this.lblProgress.Size = new System.Drawing.Size(125, 13);
+      this.lblProgress.TabIndex = 3;
+      this.lblProgress.Text = "Generating experiment ...";
       // 
       // MediumAnalysisPage
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.Controls.Add(this.label1);
       this.Controls.Add(this.progressBar1);
+      this.Controls.Add(this.lblProgress);
       this.Name = "MediumAnalysisPage";
+      this.Size = new System.Drawing.Size(640, 480);
       this.SetActive += new System.ComponentModel.CancelEventHandler(this.MediumAnalysisPage_SetActive);
+      this.WizardCancel += new System.ComponentModel.CancelEventHandler(this.MediumAnalysisPage_WizardCancel);
       this.WizardBack += new HeuristicLab.ExperimentGeneration.DataAnalysis.Wizard.WizardPageEventHandler(this.MediumAnalysisPage_WizardBack);
+      this.Controls.SetChildIndex(this.lblProgress, 0);
       this.Controls.SetChildIndex(this.progressBar1, 0);
-      this.Controls.SetChildIndex(this.label1, 0);
       this.Controls.SetChildIndex(this.wizardBanner, 0);
       this.ResumeLayout(false);
@@ -69,5 +73,5 @@
 
     private System.Windows.Forms.ProgressBar progressBar1;
-    private System.Windows.Forms.Label label1;
+    private System.Windows.Forms.Label lblProgress;
 
   }
Index: branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/MediumAnalysisPage.cs
===================================================================
--- branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/MediumAnalysisPage.cs	(revision 7953)
+++ branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/MediumAnalysisPage.cs	(revision 8024)
@@ -1,5 +1,7 @@
 ﻿
+using System;
 using System.ComponentModel;
 using System.Linq;
+using System.Windows.Forms;
 using HeuristicLab.Algorithms.DataAnalysis;
 using HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm;
@@ -32,5 +34,5 @@
       worker.WorkerReportsProgress = true;
       worker.ProgressChanged += new ProgressChangedEventHandler(WorkerProgressChanged);
-
+      worker.WorkerSupportsCancellation = true;
     }
 
@@ -38,98 +40,150 @@
       DataAnalysisWizardContext c = e.Argument as DataAnalysisWizardContext;
       IProblem problem = c.Problem;
+      if (worker.CancellationPending) {
+        e.Cancel = true;
+      } else {
+        lblProgress.Invoke(new Action(() => { lblProgress.Text = "Generating Support Vector Regression Experiment ..."; }));
+      }
 
       // SVR Experiment -------------------------------------------------------
-      //SupportVectorRegression svr = new SupportVectorRegression();
-      //svr.Problem = (IRegressionProblem)problem;
-      //ParameterConfigurationTree vc = new ParameterConfigurationTree(svr, problem);
-
-      //var nuRange = new DoubleValueRange(new DoubleValue(0.1), new DoubleValue(0.9), new DoubleValue(0.1));
-      //SetParameterRangeContraint(vc, "Nu", nuRange);
-
-      //var costRange = new DoubleValueFactorRange(new DoubleValue(0.03125), new DoubleValue(32768), new DoubleValue(4));
-      //SetParameterRangeContraint(vc, "Cost", costRange);
-
-      //var gammaRange = new DoubleValueFactorRange(new DoubleValue(6.10352E-05), new DoubleValue(64), new DoubleValue(4));
-      //SetParameterRangeContraint(vc, "Gamma", gammaRange);
-      //worker.ReportProgress(5);
-      //Experiment svrExperiment = vc.GenerateExperiment(svr);
-      // ======================================================================
-      worker.ReportProgress(20);
+      //Experiment svrExperiment = null;
+      //if (!e.Cancel) {
+      //  SupportVectorRegression svr = new SupportVectorRegression();
+      //  svr.Problem = (IRegressionProblem)problem;
+      //  ParameterConfigurationTree vc = new ParameterConfigurationTree(svr, problem);
+
+      //  var nuRange = new DoubleValueRange(new DoubleValue(0.1), new DoubleValue(0.9), new DoubleValue(0.1));
+      //  SetParameterRangeContraint(vc, "Nu", nuRange);
+
+      //  var costRange = new DoubleValueFactorRange(new DoubleValue(0.03125), new DoubleValue(32768), new DoubleValue(4));
+      //  SetParameterRangeContraint(vc, "Cost", costRange);
+
+      //  var gammaRange = new DoubleValueFactorRange(new DoubleValue(6.10352E-05), new DoubleValue(64), new DoubleValue(4));
+      //  SetParameterRangeContraint(vc, "Gamma", gammaRange);
+      //  worker.ReportProgress(5);
+      //  svrExperiment = vc.GenerateExperiment(svr);
+      //}
+      // ======================================================================
+
+      if (worker.CancellationPending) {
+        e.Cancel = true;
+      } else {
+        worker.ReportProgress(20);
+        lblProgress.Invoke(new Action(() => { lblProgress.Text = "Generating Random Forest Regression Experiment ..."; }));
+      }
+
 
       // RF Experiment --------------------------------------------------------
-      //RandomForestRegression rfr = new RandomForestRegression();
-      //rfr.Problem = (IRegressionProblem)problem;
-      //ParameterConfigurationTree rfConfig = new ParameterConfigurationTree(rfr, problem);
-      //var rRange = new DoubleValueRange(new DoubleValue(0.1), new DoubleValue(0.7), new DoubleValue(0.1));
-      //SetParameterRangeContraint(rfConfig, "R", rRange);
-      //var treeRange = new IntValueRange(new IntValue(250), new IntValue(250), new IntValue(250));
-      //SetParameterRangeContraint(rfConfig, "Number of trees", treeRange);
-      //Experiment rfrExperiment = rfConfig.GenerateExperiment(rfr);
-      // ======================================================================
-      worker.ReportProgress(40);
+      //Experiment rfrExperiment = null;
+      //if (!e.Cancel) {
+      //  RandomForestRegression rfr = new RandomForestRegression();
+      //  rfr.Problem = (IRegressionProblem)problem;
+      //  ParameterConfigurationTree rfConfig = new ParameterConfigurationTree(rfr, problem);
+      //  var rRange = new DoubleValueRange(new DoubleValue(0.1), new DoubleValue(0.7), new DoubleValue(0.1));
+      //  SetParameterRangeContraint(rfConfig, "R", rRange);
+      //  var treeRange = new IntValueRange(new IntValue(250), new IntValue(250), new IntValue(250));
+      //  SetParameterRangeContraint(rfConfig, "Number of trees", treeRange);
+      //  rfrExperiment = rfConfig.GenerateExperiment(rfr);
+      //}
+      // ======================================================================
+
+      if (worker.CancellationPending) {
+        e.Cancel = true;
+      } else {
+        worker.ReportProgress(40);
+        lblProgress.Invoke(new Action(() => { lblProgress.Text = "Generating Neural Network Regression Experiment ..."; }));
+      }
+
+
       // NN Experiment --------------------------------------------------------
-      //NeuralNetworkRegression nnr = new NeuralNetworkRegression();
-      //nnr.Problem = (IRegressionProblem)problem;
-      //ParameterConfigurationTree nnrConfig = new ParameterConfigurationTree(nnr, problem);
-      //var decayRange = new DoubleValueFactorRange(new DoubleValue(0.001), new DoubleValue(100), new DoubleValue(10));
-      //SetParameterRangeContraint(nnrConfig, "Decay", decayRange);
-      //var nodesRange = new IntValueFactorRange(new IntValue(1), new IntValue(100), new IntValue(3));
-      //SetParameterRangeContraint(nnrConfig, "NodesInFirstHiddenLayer", nodesRange);
-      //Experiment nnrExperiment = nnrConfig.GenerateExperiment(nnr);
-      // ======================================================================
-      worker.ReportProgress(60);
+      //Experiment nnrExperiment = null;
+      //if (!e.Cancel) {
+      //  NeuralNetworkRegression nnr = new NeuralNetworkRegression();
+      //  nnr.Problem = (IRegressionProblem)problem;
+      //  ParameterConfigurationTree nnrConfig = new ParameterConfigurationTree(nnr, problem);
+      //  var decayRange = new DoubleValueFactorRange(new DoubleValue(0.001), new DoubleValue(100), new DoubleValue(10));
+      //  SetParameterRangeContraint(nnrConfig, "Decay", decayRange);
+      //  var nodesRange = new IntValueFactorRange(new IntValue(1), new IntValue(100), new IntValue(3));
+      //  SetParameterRangeContraint(nnrConfig, "NodesInFirstHiddenLayer", nodesRange);
+      //  nnrExperiment = nnrConfig.GenerateExperiment(nnr);
+      //}
+      // ======================================================================
+
+      if (worker.CancellationPending) {
+        e.Cancel = true;
+      } else {
+        worker.ReportProgress(60);
+        lblProgress.Invoke(new Action(() => { lblProgress.Text = "Generating Offspring Selection Genetic Algorithm Experiment ..."; }));
+      }
+
       // GP Experiment --------------------------------------------------------
-      OffspringSelectionGeneticAlgorithm osga = new OffspringSelectionGeneticAlgorithm();
-      var prob = new SymbolicRegressionSingleObjectiveProblem();
-      prob.ProblemData = ((IRegressionProblem)problem).ProblemData;
-      //prob.SolutionCreator = new MultiSymbolicDataAnalysisExpressionCreator();
-      osga.Problem = prob;
-      osga.ComparisonFactorLowerBound.Value = 1;
-      osga.Crossover = osga.Problem.Operators.OfType<ICrossover>().FirstOrDefault(x => x.Name == gaCrossover);
-      osga.MaximumEvaluatedSolutions.Value = 500000;
-      osga.MaximumGenerations.Value = 100;
-      osga.MutationProbability = new PercentValue(0.15);
-      osga.Mutator = osga.Problem.Operators.OfType<IManipulator>().FirstOrDefault(x => x.Name == gaMutator);
-      osga.PopulationSize.Value = 500;
-      osga.Selector = osga.SelectorParameter.ValidValues.FirstOrDefault(x => x.Name == gaSelector);
-
-      CrossValidation crossSmall = new CrossValidation();
-      crossSmall.Algorithm = osga;
-      BatchRun batchSmall = new BatchRun("small");
-      batchSmall.Repetitions = nrOfRepetitions;
-      batchSmall.Optimizer = crossSmall;
-
-      CrossValidation crossMedium = (CrossValidation)crossSmall.Clone(new Cloner());
-      var probMedium = (SymbolicRegressionSingleObjectiveProblem)prob.Clone(new Cloner());
-      probMedium.MaximumSymbolicExpressionTreeDepth.Value = 12;
-      probMedium.MaximumSymbolicExpressionTreeLength.Value = 125;
-      crossMedium.Algorithm.Problem = probMedium;
-      BatchRun batchMedium = new BatchRun("medium");
-      batchMedium.Repetitions = nrOfRepetitions;
-      batchMedium.Optimizer = crossMedium;
-
-      CrossValidation crossLarge = (CrossValidation)crossSmall.Clone(new Cloner());
-      var probLarge = (SymbolicRegressionSingleObjectiveProblem)prob.Clone(new Cloner());
-      probLarge.MaximumSymbolicExpressionTreeDepth.Value = 17;
-      probLarge.MaximumSymbolicExpressionTreeLength.Value = 250;
-      crossLarge.Algorithm.Problem = probLarge;
-      BatchRun batchLarge = new BatchRun("large");
-      batchLarge.Repetitions = nrOfRepetitions;
-      batchLarge.Optimizer = crossLarge;
-
       Experiment gpExperiment = new Experiment();
-      gpExperiment.Optimizers.Add(batchSmall);
-      gpExperiment.Optimizers.Add(batchMedium);
-      gpExperiment.Optimizers.Add(batchLarge);
-      // ======================================================================
-      worker.ReportProgress(80);
+      if (!e.Cancel) {
+        OffspringSelectionGeneticAlgorithm osga = new OffspringSelectionGeneticAlgorithm();
+        var prob = new SymbolicRegressionSingleObjectiveProblem();
+        prob.ProblemData = ((IRegressionProblem)problem).ProblemData;
+        //prob.SolutionCreator = new MultiSymbolicDataAnalysisExpressionCreator();
+        osga.Problem = prob;
+        osga.ComparisonFactorLowerBound.Value = 1;
+        osga.Crossover = osga.Problem.Operators.OfType<ICrossover>().FirstOrDefault(x => x.Name == gaCrossover);
+        osga.MaximumEvaluatedSolutions.Value = 500000;
+        osga.MaximumGenerations.Value = 100;
+        osga.MutationProbability = new PercentValue(0.15);
+        osga.Mutator = osga.Problem.Operators.OfType<IManipulator>().FirstOrDefault(x => x.Name == gaMutator);
+        osga.PopulationSize.Value = 500;
+        osga.Selector = osga.SelectorParameter.ValidValues.FirstOrDefault(x => x.Name == gaSelector);
+
+        CrossValidation crossSmall = new CrossValidation();
+        crossSmall.Algorithm = osga;
+        BatchRun batchSmall = new BatchRun("small");
+        batchSmall.Repetitions = nrOfRepetitions;
+        batchSmall.Optimizer = crossSmall;
+
+        CrossValidation crossMedium = (CrossValidation)crossSmall.Clone(new Cloner());
+        var probMedium = (SymbolicRegressionSingleObjectiveProblem)prob.Clone(new Cloner());
+        probMedium.MaximumSymbolicExpressionTreeDepth.Value = 12;
+        probMedium.MaximumSymbolicExpressionTreeLength.Value = 125;
+        crossMedium.Algorithm.Problem = probMedium;
+        BatchRun batchMedium = new BatchRun("medium");
+        batchMedium.Repetitions = nrOfRepetitions;
+        batchMedium.Optimizer = crossMedium;
+
+        CrossValidation crossLarge = (CrossValidation)crossSmall.Clone(new Cloner());
+        var probLarge = (SymbolicRegressionSingleObjectiveProblem)prob.Clone(new Cloner());
+        probLarge.MaximumSymbolicExpressionTreeDepth.Value = 17;
+        probLarge.MaximumSymbolicExpressionTreeLength.Value = 250;
+        crossLarge.Algorithm.Problem = probLarge;
+        BatchRun batchLarge = new BatchRun("large");
+        batchLarge.Repetitions = nrOfRepetitions;
+        batchLarge.Optimizer = crossLarge;
+
+        //Experiment gpExperiment = new Experiment();
+        gpExperiment.Optimizers.Add(batchSmall);
+        gpExperiment.Optimizers.Add(batchMedium);
+        gpExperiment.Optimizers.Add(batchLarge);
+      }
+      // ======================================================================
+      if (worker.CancellationPending) {
+        e.Cancel = true;
+      } else {
+        worker.ReportProgress(80);
+        lblProgress.Invoke(new Action(() => { lblProgress.Text = "Packing Data Analysis Experiment ..."; }));
+      }
 
       Experiment experiment = new Experiment("Data Analysis Experiment");
-      //experiment.Optimizers.Add(svrExperiment);
-      //experiment.Optimizers.Add(rfrExperiment);
-      //experiment.Optimizers.Add(nnrExperiment);
-      experiment.Optimizers.Add(gpExperiment);
-
-      worker.ReportProgress(100);
+      if (!e.Cancel) {
+        //Experiment experiment = new Experiment("Data Analysis Experiment");
+        //experiment.Optimizers.Add(svrExperiment);
+        //experiment.Optimizers.Add(rfrExperiment);
+        //experiment.Optimizers.Add(nnrExperiment);
+        experiment.Optimizers.Add(gpExperiment);
+      }
+
+      if (worker.CancellationPending) {
+        e.Cancel = true;
+      } else {
+        worker.ReportProgress(100);
+        lblProgress.Invoke(new Action(() => { lblProgress.Text = "Experiment generation completed"; }));
+      }
 
       e.Result = experiment;
@@ -150,7 +204,14 @@
 
     private void WorkerCompleted(object sender, RunWorkerCompletedEventArgs e) {
-      SetWizardButton(Wizard.WizardButtons.Next);
-      Experiment experiment = (Experiment)e.Result;
-      context.Experiment = experiment;
+      if (e.Error != null) {
+        SetWizardButton(Wizard.WizardButtons.Back);
+        MessageBox.Show(e.Error.Message, "Error occurred while generating experiments", MessageBoxButtons.OK, MessageBoxIcon.Error);
+      } else if (e.Cancelled) {
+        // nothing to do here ...
+      } else {
+        SetWizardButton(Wizard.WizardButtons.Next);
+        Experiment experiment = (Experiment)e.Result;
+        context.Experiment = experiment;
+      }
     }
 
@@ -163,4 +224,8 @@
       worker.RunWorkerAsync(context);
     }
+
+    private void MediumAnalysisPage_WizardCancel(object sender, CancelEventArgs e) {
+      worker.CancelAsync();
+    }
   }
 }
Index: branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/Plugin.cs.frame
===================================================================
--- branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/Plugin.cs.frame	(revision 7953)
+++ branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/Plugin.cs.frame	(revision 8024)
@@ -32,5 +32,5 @@
   [PluginDependency("HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm", "3.3")]
   [PluginDependency("HeuristicLab.Clients.Hive", "3.3")]
-  [PluginDependency("HeuristicLab.Clients.HiveJobManager", "3.3")]
+  [PluginDependency("HeuristicLab.Clients.Hive.JobManager", "3.3")]
   [PluginDependency("HeuristicLab.Collections", "3.3")]
   [PluginDependency("HeuristicLab.Common", "3.3")]
@@ -54,5 +54,5 @@
   [PluginDependency("HeuristicLab.Problems.DataAnalysis", "3.4")]
   [PluginDependency("HeuristicLab.Problems.DataAnalysis.Symbolic", "3.4")]
-  [PluginDependency("HeuristicLab.Problems.DataAnalysis.Regression", "3.4")]
+  [PluginDependency("HeuristicLab.Problems.DataAnalysis.Symbolic.Regression", "3.4")]
   [PluginDependency("HeuristicLab.Problems.DataAnalysis.Views", "3.4")]
   [PluginDependency("HeuristicLab.Problems.Instances", "3.3")]
Index: branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/TargetVariablePage.Designer.cs
===================================================================
--- branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/TargetVariablePage.Designer.cs	(revision 7953)
+++ branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/TargetVariablePage.Designer.cs	(revision 8024)
@@ -32,5 +32,5 @@
       // wizardBanner
       // 
-      this.wizardBanner.Size = new System.Drawing.Size(471, 81);
+      this.wizardBanner.Size = new System.Drawing.Size(640, 81);
       this.wizardBanner.Subtitle = "Select the solumn which describes the expected output values.";
       this.wizardBanner.Title = "Target Variable";
@@ -48,5 +48,5 @@
       this.stringConvertibleMatrixView.ShowRowsAndColumnsTextBox = true;
       this.stringConvertibleMatrixView.ShowStatisticalInformation = true;
-      this.stringConvertibleMatrixView.Size = new System.Drawing.Size(462, 168);
+      this.stringConvertibleMatrixView.Size = new System.Drawing.Size(631, 337);
       this.stringConvertibleMatrixView.TabIndex = 1;
       // 
@@ -68,5 +68,5 @@
       this.cmbTargetVariable.Location = new System.Drawing.Point(119, 88);
       this.cmbTargetVariable.Name = "cmbTargetVariable";
-      this.cmbTargetVariable.Size = new System.Drawing.Size(349, 21);
+      this.cmbTargetVariable.Size = new System.Drawing.Size(518, 21);
       this.cmbTargetVariable.TabIndex = 3;
       // 
@@ -80,5 +80,5 @@
       this.label2.Text = "Preview data:";
       // 
-      // ProblemDataViewPage
+      // TargetVariablePage
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@@ -87,6 +87,6 @@
       this.Controls.Add(this.label1);
       this.Controls.Add(this.stringConvertibleMatrixView);
-      this.Name = "ProblemDataViewPage";
-      this.Size = new System.Drawing.Size(471, 311);
+      this.Name = "TargetVariablePage";
+      this.Size = new System.Drawing.Size(640, 480);
       this.SetActive += new System.ComponentModel.CancelEventHandler(this.ProblemDataViewPage_SetActive);
       this.WizardNext += new HeuristicLab.ExperimentGeneration.DataAnalysis.Wizard.WizardPageEventHandler(this.ProblemDataViewPage_WizardNext);
Index: branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.Wizard/3.3/WizardBase.cs
===================================================================
--- branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.Wizard/3.3/WizardBase.cs	(revision 7953)
+++ branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.Wizard/3.3/WizardBase.cs	(revision 8024)
@@ -170,6 +170,11 @@
 
     private void btnCancel_Click(object sender, EventArgs e) {
-      DialogResult = DialogResult.Cancel;
-      Close();
+      CancelEventArgs cea = new CancelEventArgs();
+      cea.Cancel = true;
+      ActivePage.OnWizardCancel(cea);
+      if (cea.Cancel) {
+        DialogResult = DialogResult.Cancel;
+        Close();
+      }
     }
 
Index: branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.Wizard/3.3/WizardPage.cs
===================================================================
--- branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.Wizard/3.3/WizardPage.cs	(revision 7953)
+++ branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.Wizard/3.3/WizardPage.cs	(revision 8024)
@@ -39,4 +39,10 @@
     }
 
+    public event CancelEventHandler WizardCancel;
+    public virtual void OnWizardCancel(CancelEventArgs e) {
+      if (WizardCancel != null)
+        WizardCancel(this, e);
+    }
+
     public event WizardPageEventHandler WizardNext;
     public virtual void OnWizardNext(WizardPageEventArgs e) {
