Index: unk/sources/HeuristicLab.Core.Views/3.3/Auxiliary.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/Auxiliary.cs	(revision 3757)
+++ 	(revision )
@@ -1,56 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using System.Text;
-using System.Windows.Forms;
-using HeuristicLab.Common;
-using HeuristicLab.Core;
-
-namespace HeuristicLab.Core.Views {
-  /// <summary>
-  /// Static helper class.
-  /// </summary>
-  public static class Auxiliary {
-    #region Error Messages
-    /// <summary>
-    /// Shows an error message box with a given error <paramref name="message"/> and an OK-Button.
-    /// </summary>
-    /// <param name="message">The error message to display.</param>
-    public static void ShowErrorMessageBox(string message) {
-      MessageBox.Show(message,
-                      "Error",
-                      MessageBoxButtons.OK,
-                      MessageBoxIcon.Error);
-    }
-    /// <summary>
-    /// Shows an error message box with a given exception <paramref name="ex"/> and an OK-Button.
-    /// </summary>
-    /// <param name="ex">The exception to display.</param>
-    public static void ShowErrorMessageBox(Exception ex) {
-      MessageBox.Show(Log.BuildErrorMessage(ex),
-                      "Error - " + ex.GetType().Name,
-                      MessageBoxButtons.OK,
-                      MessageBoxIcon.Error);
-    }
-    #endregion
-  }
-}
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/Clipboard.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/Clipboard.cs	(revision 3757)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/Clipboard.cs	(revision 3758)
@@ -28,4 +28,5 @@
 using HeuristicLab.MainForm;
 using HeuristicLab.Persistence.Default.Xml;
+using HeuristicLab.PluginInfrastructure;
 
 namespace HeuristicLab.Core.Views {
@@ -279,5 +280,5 @@
         }
         catch (Exception ex) {
-          Auxiliary.ShowErrorMessageBox(ex);
+          ErrorHandling.ShowErrorDialog(this, ex);
         }
       }
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/CreateParameterDialog.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/CreateParameterDialog.cs	(revision 3757)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/CreateParameterDialog.cs	(revision 3758)
@@ -22,4 +22,5 @@
 using System;
 using System.Windows.Forms;
+using HeuristicLab.PluginInfrastructure;
 
 namespace HeuristicLab.Core.Views {
@@ -40,5 +41,5 @@
         }
         catch (Exception ex) {
-          Auxiliary.ShowErrorMessageBox(ex);
+          ErrorHandling.ShowErrorDialog(this, ex);
         }
         return null;
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/HeuristicLab.Core.Views-3.3.csproj
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/HeuristicLab.Core.Views-3.3.csproj	(revision 3757)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/HeuristicLab.Core.Views-3.3.csproj	(revision 3758)
@@ -153,5 +153,4 @@
       <DependentUpon>CreateParameterDialog.cs</DependentUpon>
     </Compile>
-    <Compile Include="Auxiliary.cs" />
     <Compile Include="EngineView.cs">
       <SubType>UserControl</SubType>
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/ItemArrayView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/ItemArrayView.cs	(revision 3757)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/ItemArrayView.cs	(revision 3758)
@@ -27,4 +27,5 @@
 using HeuristicLab.MainForm;
 using HeuristicLab.MainForm.WindowsForms;
+using HeuristicLab.PluginInfrastructure;
 
 namespace HeuristicLab.Core.Views {
@@ -137,5 +138,5 @@
         }
         catch (Exception ex) {
-          Auxiliary.ShowErrorMessageBox(ex);
+          ErrorHandling.ShowErrorDialog(this, ex);
         }
       }
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/ItemCollectionView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/ItemCollectionView.cs	(revision 3757)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/ItemCollectionView.cs	(revision 3758)
@@ -27,4 +27,5 @@
 using HeuristicLab.MainForm;
 using HeuristicLab.MainForm.WindowsForms;
+using HeuristicLab.PluginInfrastructure;
 
 namespace HeuristicLab.Core.Views {
@@ -112,5 +113,5 @@
         }
         catch (Exception ex) {
-          Auxiliary.ShowErrorMessageBox(ex);
+          ErrorHandling.ShowErrorDialog(this, ex);
         }
       }
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/ItemListView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/ItemListView.cs	(revision 3757)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/ItemListView.cs	(revision 3758)
@@ -27,4 +27,5 @@
 using HeuristicLab.MainForm;
 using HeuristicLab.MainForm.WindowsForms;
+using HeuristicLab.PluginInfrastructure;
 
 namespace HeuristicLab.Core.Views {
@@ -140,5 +141,5 @@
         }
         catch (Exception ex) {
-          Auxiliary.ShowErrorMessageBox(ex);
+          ErrorHandling.ShowErrorDialog(this, ex);
         }
       }
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorCollectionView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorCollectionView.cs	(revision 3757)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorCollectionView.cs	(revision 3758)
@@ -24,4 +24,5 @@
 using HeuristicLab.Collections;
 using HeuristicLab.MainForm;
+using HeuristicLab.PluginInfrastructure;
 
 namespace HeuristicLab.Core.Views {
@@ -52,5 +53,5 @@
         }
         catch (Exception ex) {
-          Auxiliary.ShowErrorMessageBox(ex);
+          ErrorHandling.ShowErrorDialog(this, ex);
         }
       }
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorListView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorListView.cs	(revision 3757)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorListView.cs	(revision 3758)
@@ -24,4 +24,5 @@
 using HeuristicLab.Collections;
 using HeuristicLab.MainForm;
+using HeuristicLab.PluginInfrastructure;
 
 namespace HeuristicLab.Core.Views {
@@ -52,5 +53,5 @@
         }
         catch (Exception ex) {
-          Auxiliary.ShowErrorMessageBox(ex);
+          ErrorHandling.ShowErrorDialog(this, ex);
         }
       }
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorSetView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorSetView.cs	(revision 3757)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorSetView.cs	(revision 3758)
@@ -24,4 +24,5 @@
 using HeuristicLab.Collections;
 using HeuristicLab.MainForm;
+using HeuristicLab.PluginInfrastructure;
 
 namespace HeuristicLab.Core.Views {
@@ -52,5 +53,5 @@
         }
         catch (Exception ex) {
-          Auxiliary.ShowErrorMessageBox(ex);
+          ErrorHandling.ShowErrorDialog(this, ex);
         }
       }
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/VariableView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/VariableView.cs	(revision 3757)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/VariableView.cs	(revision 3758)
@@ -24,4 +24,5 @@
 using HeuristicLab.Common;
 using HeuristicLab.MainForm;
+using HeuristicLab.PluginInfrastructure;
 
 namespace HeuristicLab.Core.Views {
@@ -121,5 +122,5 @@
         }
         catch (Exception ex) {
-          Auxiliary.ShowErrorMessageBox(ex);
+          ErrorHandling.ShowErrorDialog(this, ex);
         }
       }
Index: /trunk/sources/HeuristicLab.Core/3.3/HeuristicLab.Core-3.3.csproj
===================================================================
--- /trunk/sources/HeuristicLab.Core/3.3/HeuristicLab.Core-3.3.csproj	(revision 3757)
+++ /trunk/sources/HeuristicLab.Core/3.3/HeuristicLab.Core-3.3.csproj	(revision 3758)
@@ -136,4 +136,5 @@
     <Compile Include="Constraints\IConstraint.cs" />
     <Compile Include="Constraints\TypeCompatibilityConstraint.cs" />
+    <Compile Include="OperatorExecutionException.cs" />
     <Compile Include="Interfaces\IScopeTreeLookupParameter.cs" />
     <Compile Include="Interfaces\ICheckedItemList.cs" />
Index: /trunk/sources/HeuristicLab.Core/3.3/Log.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core/3.3/Log.cs	(revision 3757)
+++ /trunk/sources/HeuristicLab.Core/3.3/Log.cs	(revision 3758)
@@ -25,4 +25,5 @@
 using HeuristicLab.Common;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.PluginInfrastructure;
 
 namespace HeuristicLab.Core {
@@ -63,5 +64,5 @@
     }
     public virtual void LogException(Exception ex) {
-      string s = DateTime.Now.ToString() + "\t" + "Exception occurred:" + Environment.NewLine + BuildErrorMessage(ex);
+      string s = DateTime.Now.ToString() + "\t" + "Exception occurred:" + Environment.NewLine + ErrorHandling.BuildErrorMessage(ex);
       messages.Add(s);
       OnMessageAdded(s);
@@ -78,15 +79,4 @@
       if (handler != null) handler(this, EventArgs.Empty);
     }
-
-    public static string BuildErrorMessage(Exception ex) {
-      string nl = Environment.NewLine;
-      string message = ex.Message + nl + ex.StackTrace;
-
-      while (ex.InnerException != null) {
-        ex = ex.InnerException;
-        message += nl + "-----" + nl + ex.Message + nl + ex.StackTrace;
-      }
-      return message;
-    }
   }
 }
Index: /trunk/sources/HeuristicLab.Core/3.3/OperatorExecutionException.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core/3.3/OperatorExecutionException.cs	(revision 3758)
+++ /trunk/sources/HeuristicLab.Core/3.3/OperatorExecutionException.cs	(revision 3758)
@@ -0,0 +1,53 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+
+namespace HeuristicLab.Core {
+  public class OperatorExecutionException : Exception {
+    private IOperator op;
+    public IOperator Operator {
+      get { return op; }
+    }
+    public override string Message {
+      get {
+        string name = "\"" + op.Name + "\"";
+        if (!op.Name.Equals(op.ItemName)) name += " (" + op.ItemName + ")";
+
+        if (InnerException == null)
+          return base.Message + name + ".";
+        else
+          return base.Message + name + ": " + InnerException.Message;
+      }
+    }
+
+    public OperatorExecutionException(IOperator op)
+      : base("An exception was thrown by the operator ") {
+      if (op == null) throw new ArgumentNullException();
+      this.op = op;
+    }
+    public OperatorExecutionException(IOperator op, Exception innerException)
+      : base("An exception was thrown by the operator ", innerException) {
+      if (op == null) throw new ArgumentNullException();
+      this.op = op;
+    }
+  }
+}
Index: /trunk/sources/HeuristicLab.Operators.Programmable/3.3/ProgrammableOperatorView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Operators.Programmable/3.3/ProgrammableOperatorView.cs	(revision 3757)
+++ /trunk/sources/HeuristicLab.Operators.Programmable/3.3/ProgrammableOperatorView.cs	(revision 3758)
@@ -37,4 +37,5 @@
 using HeuristicLab.Operators.Views;
 using HeuristicLab.MainForm;
+using HeuristicLab.PluginInfrastructure;
 
 namespace HeuristicLab.Operators.Programmable {
@@ -134,5 +135,5 @@
         MessageBox.Show("Compilation successful", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
       } catch (Exception ex) {
-        Auxiliary.ShowErrorMessageBox(ex);
+        ErrorHandling.ShowErrorDialog(this, ex);
       }
       OnContentChanged();
Index: /trunk/sources/HeuristicLab.Optimization.Views/3.3/AlgorithmView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization.Views/3.3/AlgorithmView.cs	(revision 3757)
+++ /trunk/sources/HeuristicLab.Optimization.Views/3.3/AlgorithmView.cs	(revision 3758)
@@ -28,4 +28,5 @@
 using HeuristicLab.MainForm;
 using HeuristicLab.Persistence.Default.Xml;
+using HeuristicLab.PluginInfrastructure;
 
 namespace HeuristicLab.Optimization.Views {
@@ -155,5 +156,5 @@
         Invoke(new EventHandler<EventArgs<Exception>>(Content_ExceptionOccurred), sender, e);
       else
-        Auxiliary.ShowErrorMessageBox(e.Value);
+        ErrorHandling.ShowErrorDialog(this, e.Value);
     }
     #endregion
@@ -172,5 +173,5 @@
         }
         catch (Exception ex) {
-          Auxiliary.ShowErrorMessageBox(ex);
+          ErrorHandling.ShowErrorDialog(this, ex);
         }
       }
@@ -196,5 +197,5 @@
           }
           catch (Exception ex) {
-            Invoke(new Action(() => Auxiliary.ShowErrorMessageBox(ex)));
+            Invoke(new Action(() => ErrorHandling.ShowErrorDialog(this, ex)));
           }
           finally {
Index: /trunk/sources/HeuristicLab.Optimization.Views/3.3/BatchRunView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization.Views/3.3/BatchRunView.cs	(revision 3757)
+++ /trunk/sources/HeuristicLab.Optimization.Views/3.3/BatchRunView.cs	(revision 3758)
@@ -27,4 +27,5 @@
 using HeuristicLab.MainForm;
 using HeuristicLab.Persistence.Default.Xml;
+using HeuristicLab.PluginInfrastructure;
 
 namespace HeuristicLab.Optimization.Views {
@@ -120,5 +121,5 @@
         Invoke(new EventHandler<EventArgs<Exception>>(Content_ExceptionOccurred), sender, e);
       else
-        Auxiliary.ShowErrorMessageBox(e.Value);
+        ErrorHandling.ShowErrorDialog(this, e.Value);
     }
     private void Content_AlgorithmChanged(object sender, EventArgs e) {
@@ -157,5 +158,5 @@
         }
         catch (Exception ex) {
-          Auxiliary.ShowErrorMessageBox(ex);
+          ErrorHandling.ShowErrorDialog(this, ex);
         }
       }
@@ -177,5 +178,5 @@
           }
           catch (Exception ex) {
-            Auxiliary.ShowErrorMessageBox(ex);
+            ErrorHandling.ShowErrorDialog(this, ex);
           }
           finally {
Index: /trunk/sources/HeuristicLab.Optimization.Views/3.3/ExperimentView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization.Views/3.3/ExperimentView.cs	(revision 3757)
+++ /trunk/sources/HeuristicLab.Optimization.Views/3.3/ExperimentView.cs	(revision 3758)
@@ -26,4 +26,5 @@
 using HeuristicLab.Core.Views;
 using HeuristicLab.MainForm;
+using HeuristicLab.PluginInfrastructure;
 
 namespace HeuristicLab.Optimization.Views {
@@ -110,5 +111,5 @@
         Invoke(new EventHandler<EventArgs<Exception>>(Content_ExceptionOccurred), sender, e);
       else
-        Auxiliary.ShowErrorMessageBox(e.Value);
+        ErrorHandling.ShowErrorDialog(this, e.Value);
     }
     #endregion
Index: /trunk/sources/HeuristicLab.Optimization.Views/3.3/OptimizerListView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization.Views/3.3/OptimizerListView.cs	(revision 3757)
+++ /trunk/sources/HeuristicLab.Optimization.Views/3.3/OptimizerListView.cs	(revision 3758)
@@ -26,4 +26,5 @@
 using HeuristicLab.Core.Views;
 using HeuristicLab.MainForm;
+using HeuristicLab.PluginInfrastructure;
 
 namespace HeuristicLab.Optimization.Views {
@@ -54,5 +55,5 @@
         }
         catch (Exception ex) {
-          Auxiliary.ShowErrorMessageBox(ex);
+          ErrorHandling.ShowErrorDialog(this, ex);
         }
       }
Index: /trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionConstraintCollectionView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionConstraintCollectionView.cs	(revision 3757)
+++ /trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionConstraintCollectionView.cs	(revision 3758)
@@ -26,4 +26,5 @@
 using HeuristicLab.Optimization;
 using System.Drawing;
+using HeuristicLab.PluginInfrastructure;
 
 namespace HeuristicLab.Core.Views {
@@ -54,5 +55,5 @@
         }
         catch (Exception ex) {
-          Auxiliary.ShowErrorMessageBox(ex);
+          ErrorHandling.ShowErrorDialog(this, ex);
         }
       }
Index: /trunk/sources/HeuristicLab.Optimization.Views/3.3/UserDefinedAlgorithmView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization.Views/3.3/UserDefinedAlgorithmView.cs	(revision 3757)
+++ /trunk/sources/HeuristicLab.Optimization.Views/3.3/UserDefinedAlgorithmView.cs	(revision 3758)
@@ -27,4 +27,5 @@
 using HeuristicLab.MainForm;
 using HeuristicLab.Persistence.Default.Xml;
+using HeuristicLab.PluginInfrastructure;
 
 namespace HeuristicLab.Optimization.Views {
@@ -90,5 +91,5 @@
           }
           catch (Exception ex) {
-            Auxiliary.ShowErrorMessageBox(ex);
+            ErrorHandling.ShowErrorDialog(this, ex);
           }
           finally {
Index: /trunk/sources/HeuristicLab.Optimizer/3.3/FileManager.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimizer/3.3/FileManager.cs	(revision 3757)
+++ /trunk/sources/HeuristicLab.Optimizer/3.3/FileManager.cs	(revision 3758)
@@ -26,4 +26,5 @@
 using HeuristicLab.Core.Views;
 using HeuristicLab.MainForm;
+using HeuristicLab.PluginInfrastructure;
 
 namespace HeuristicLab.Optimizer {
@@ -73,5 +74,5 @@
       }
       catch (Exception ex) {
-        Auxiliary.ShowErrorMessageBox(ex);
+        ErrorHandling.ShowErrorDialog((Control)MainFormManager.MainForm, "Cannot open file.", ex);
       }
       finally {
@@ -133,5 +134,5 @@
       }
       catch (Exception ex) {
-        Auxiliary.ShowErrorMessageBox(ex);
+        ErrorHandling.ShowErrorDialog((Control)MainFormManager.MainForm, "Cannot save file.", ex);
       }
       finally {
Index: /trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueLookupParameterView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueLookupParameterView.cs	(revision 3757)
+++ /trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueLookupParameterView.cs	(revision 3758)
@@ -26,4 +26,5 @@
 using HeuristicLab.Core.Views;
 using HeuristicLab.MainForm;
+using HeuristicLab.PluginInfrastructure;
 
 namespace HeuristicLab.Parameters.Views {
@@ -133,5 +134,5 @@
         }
         catch (Exception ex) {
-          Auxiliary.ShowErrorMessageBox(ex);
+          ErrorHandling.ShowErrorDialog(this, ex);
         }
       }
Index: /trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueParameterView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueParameterView.cs	(revision 3757)
+++ /trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueParameterView.cs	(revision 3758)
@@ -26,4 +26,5 @@
 using HeuristicLab.Core.Views;
 using HeuristicLab.MainForm;
+using HeuristicLab.PluginInfrastructure;
 
 namespace HeuristicLab.Parameters.Views {
@@ -121,5 +122,5 @@
         }
         catch (Exception ex) {
-          Auxiliary.ShowErrorMessageBox(ex);
+          ErrorHandling.ShowErrorDialog(this, ex);
         }
       }
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/ErrorHandling/ErrorDialog.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/ErrorHandling/ErrorDialog.Designer.cs	(revision 3758)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/ErrorHandling/ErrorDialog.Designer.cs	(revision 3758)
@@ -0,0 +1,182 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+namespace HeuristicLab.PluginInfrastructure {
+  partial class ErrorDialog {
+    /// <summary>
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary>
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Windows Form Designer generated code
+
+    /// <summary>
+    /// Required method for Designer support - do not modify
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      this.okButton = new System.Windows.Forms.Button();
+      this.iconLabel = new System.Windows.Forms.Label();
+      this.messageTextBox = new System.Windows.Forms.TextBox();
+      this.detailsGroupBox = new System.Windows.Forms.GroupBox();
+      this.detailsTextBox = new System.Windows.Forms.TextBox();
+      this.supportLabel = new System.Windows.Forms.Label();
+      this.supportLinkLabel = new System.Windows.Forms.LinkLabel();
+      this.detailsGroupBox.SuspendLayout();
+      this.SuspendLayout();
+      // 
+      // okButton
+      // 
+      this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+      this.okButton.DialogResult = System.Windows.Forms.DialogResult.OK;
+      this.okButton.Location = new System.Drawing.Point(497, 327);
+      this.okButton.Name = "okButton";
+      this.okButton.Size = new System.Drawing.Size(75, 23);
+      this.okButton.TabIndex = 0;
+      this.okButton.Text = "&OK";
+      this.okButton.UseVisualStyleBackColor = true;
+      // 
+      // iconLabel
+      // 
+      this.iconLabel.Image = global::HeuristicLab.PluginInfrastructure.Resources.Error;
+      this.iconLabel.Location = new System.Drawing.Point(12, 9);
+      this.iconLabel.Name = "iconLabel";
+      this.iconLabel.Size = new System.Drawing.Size(50, 60);
+      this.iconLabel.TabIndex = 1;
+      // 
+      // messageTextBox
+      // 
+      this.messageTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.messageTextBox.BackColor = System.Drawing.SystemColors.Control;
+      this.messageTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
+      this.messageTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+      this.messageTextBox.Location = new System.Drawing.Point(68, 12);
+      this.messageTextBox.Multiline = true;
+      this.messageTextBox.Name = "messageTextBox";
+      this.messageTextBox.ReadOnly = true;
+      this.messageTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
+      this.messageTextBox.Size = new System.Drawing.Size(504, 57);
+      this.messageTextBox.TabIndex = 2;
+      this.messageTextBox.Text = "Error Message";
+      // 
+      // detailsGroupBox
+      // 
+      this.detailsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+                  | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.detailsGroupBox.Controls.Add(this.detailsTextBox);
+      this.detailsGroupBox.Location = new System.Drawing.Point(12, 75);
+      this.detailsGroupBox.Name = "detailsGroupBox";
+      this.detailsGroupBox.Size = new System.Drawing.Size(560, 246);
+      this.detailsGroupBox.TabIndex = 3;
+      this.detailsGroupBox.TabStop = false;
+      this.detailsGroupBox.Text = "Details";
+      // 
+      // detailsTextBox
+      // 
+      this.detailsTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+                  | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.detailsTextBox.BackColor = System.Drawing.SystemColors.Control;
+      this.detailsTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
+      this.detailsTextBox.Location = new System.Drawing.Point(6, 19);
+      this.detailsTextBox.Multiline = true;
+      this.detailsTextBox.Name = "detailsTextBox";
+      this.detailsTextBox.ReadOnly = true;
+      this.detailsTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Both;
+      this.detailsTextBox.Size = new System.Drawing.Size(548, 221);
+      this.detailsTextBox.TabIndex = 0;
+      this.detailsTextBox.Text = "Stack Trace";
+      this.detailsTextBox.WordWrap = false;
+      // 
+      // supportLabel
+      // 
+      this.supportLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+      this.supportLabel.AutoSize = true;
+      this.supportLabel.Location = new System.Drawing.Point(12, 332);
+      this.supportLabel.Name = "supportLabel";
+      this.supportLabel.Size = new System.Drawing.Size(264, 13);
+      this.supportLabel.TabIndex = 4;
+      this.supportLabel.Text = "If you have any problems or questions, please contact:";
+      // 
+      // supportLinkLabel
+      // 
+      this.supportLinkLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+      this.supportLinkLabel.AutoSize = true;
+      this.supportLinkLabel.Location = new System.Drawing.Point(298, 332);
+      this.supportLinkLabel.Name = "supportLinkLabel";
+      this.supportLinkLabel.Size = new System.Drawing.Size(129, 13);
+      this.supportLinkLabel.TabIndex = 5;
+      this.supportLinkLabel.TabStop = true;
+      this.supportLinkLabel.Text = "support@heuristiclab.com";
+      this.supportLinkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.supportLinkLabel_LinkClicked);
+      // 
+      // ErrorDialog
+      // 
+      this.AcceptButton = this.okButton;
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.CancelButton = this.okButton;
+      this.ClientSize = new System.Drawing.Size(584, 362);
+      this.Controls.Add(this.supportLinkLabel);
+      this.Controls.Add(this.supportLabel);
+      this.Controls.Add(this.detailsGroupBox);
+      this.Controls.Add(this.messageTextBox);
+      this.Controls.Add(this.iconLabel);
+      this.Controls.Add(this.okButton);
+      this.Icon = global::HeuristicLab.PluginInfrastructure.Resources.ErrorIcon;
+      this.MaximizeBox = false;
+      this.MinimizeBox = false;
+      this.Name = "ErrorDialog";
+      this.ShowInTaskbar = false;
+      this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+      this.Text = "Error";
+      this.TopMost = true;
+      this.detailsGroupBox.ResumeLayout(false);
+      this.detailsGroupBox.PerformLayout();
+      this.ResumeLayout(false);
+      this.PerformLayout();
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.Button okButton;
+    private System.Windows.Forms.Label iconLabel;
+    private System.Windows.Forms.TextBox messageTextBox;
+    private System.Windows.Forms.GroupBox detailsGroupBox;
+    private System.Windows.Forms.TextBox detailsTextBox;
+    private System.Windows.Forms.Label supportLabel;
+    private System.Windows.Forms.LinkLabel supportLinkLabel;
+  }
+}
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/ErrorHandling/ErrorDialog.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/ErrorHandling/ErrorDialog.cs	(revision 3758)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/ErrorHandling/ErrorDialog.cs	(revision 3758)
@@ -0,0 +1,64 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Windows.Forms;
+
+namespace HeuristicLab.PluginInfrastructure {
+  public partial class ErrorDialog : Form {
+    public ErrorDialog() {
+      InitializeComponent();
+      Initialize(null, null);
+    }
+    public ErrorDialog(Exception exception)
+      : this() {
+      Initialize(null, exception);
+    }
+    public ErrorDialog(string message, Exception exception)
+      : this() {
+      Initialize(message, exception);
+    }
+
+    private void Initialize(string message, Exception exception) {
+      Text = "Error";
+      if (exception != null) Text += "  -  " + exception.GetType().Name;
+
+      if (!string.IsNullOrEmpty(message))
+        messageTextBox.Text = message;
+      else if (exception != null)
+        messageTextBox.Text = exception.Message;
+      else
+        messageTextBox.Text = "Sorry, but something went wrong.";
+      messageTextBox.Enabled = !string.IsNullOrEmpty(messageTextBox.Text);
+
+      detailsTextBox.Text = ErrorHandling.BuildErrorMessage(exception);
+      detailsGroupBox.Enabled = !string.IsNullOrEmpty(detailsTextBox.Text);
+    }
+
+    private void supportLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) {
+      try {
+        System.Diagnostics.Process.Start("mailto:" + supportLinkLabel.Text);
+        supportLinkLabel.LinkVisited = true;
+      }
+      catch (Exception) { }
+    }
+  }
+}
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/ErrorHandling/ErrorHandling.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/ErrorHandling/ErrorHandling.cs	(revision 3758)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/ErrorHandling/ErrorHandling.cs	(revision 3758)
@@ -0,0 +1,68 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Windows.Forms;
+
+namespace HeuristicLab.PluginInfrastructure {
+  public static class ErrorHandling {
+    public static readonly string NewLine = Environment.NewLine;
+
+    public static string BuildErrorMessage(Exception exception) {
+      if (exception == null) {
+        return string.Empty;
+      } else {
+        string message = exception.GetType().Name + ": " + exception.Message + NewLine +
+                         exception.StackTrace;
+
+        while (exception.InnerException != null) {
+          exception = exception.InnerException;
+          message += NewLine +
+                     "-----" + NewLine +
+                     exception.GetType().Name + ": " + exception.Message + NewLine +
+                     exception.StackTrace;
+        }
+        return message;
+      }
+    }
+
+    public static void ShowErrorDialog(Exception exception) {
+      ShowErrorDialog(string.Empty, exception);
+    }
+    public static void ShowErrorDialog(Control owner, Exception exception) {
+      ShowErrorDialog(owner, string.Empty, exception);
+    }
+    public static void ShowErrorDialog(string message, Exception exception) {
+      using (ErrorDialog dialog = new ErrorDialog(message, exception)) {
+        dialog.ShowDialog();
+      }
+    }
+    public static void ShowErrorDialog(Control owner, string message, Exception exception) {
+      if (owner.InvokeRequired) {
+        owner.Invoke(new Action<Control, string, Exception>(ShowErrorDialog), owner, message, exception);
+      } else {
+        using (ErrorDialog dialog = new ErrorDialog(message, exception)) {
+          dialog.ShowDialog(owner);
+        }
+      }
+    }
+  }
+}
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/HeuristicLab.PluginInfrastructure.csproj
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/HeuristicLab.PluginInfrastructure.csproj	(revision 3757)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/HeuristicLab.PluginInfrastructure.csproj	(revision 3758)
@@ -194,4 +194,12 @@
     <Compile Include="BaseClasses\PluginBase.cs" />
     <Compile Include="DefaultApplicationManager.cs" />
+    <Compile Include="ErrorHandling\ErrorDialog.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="ErrorHandling\ErrorDialog.Designer.cs">
+      <DependentUpon>ErrorDialog.cs</DependentUpon>
+    </Compile>
+    <Compile Include="ErrorHandling\ErrorHandling.cs">
+    </Compile>
     <Compile Include="LightweightApplicationManager.cs" />
     <Compile Include="Interfaces\IPluginFile.cs" />
@@ -260,4 +268,5 @@
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
+    <None Include="Resources\Error.ico" />
     <Content Include="Resources\HeuristicLab.ico" />
     <Content Include="Resources\Logo_white.gif" />
@@ -265,4 +274,5 @@
     <Content Include="Resources\VS2008ImageLibrary_Actions_PublishToWebHS.png" />
     <Content Include="Resources\VS2008ImageLibrary_Actions_RepeatHS.png" />
+    <None Include="Resources\VS2008ImageLibrary_Annotations_Error.png" />
     <Content Include="Resources\VS2008ImageLibrary_CommonElements_Actions_Add.png" />
     <Content Include="Resources\VS2008ImageLibrary_Objects_Plugin.png" />
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/Main.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/Main.cs	(revision 3757)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/Main.cs	(revision 3758)
@@ -44,26 +44,6 @@
       }
       catch (Exception ex) {
-        ShowErrorMessageBox(ex);
+        ErrorHandling.ShowErrorDialog(ex);
       }
-    }
-
-    private static void ShowErrorMessageBox(Exception ex) {
-      MessageBox.Show(null,
-        BuildErrorMessage(ex),
-        "Error - " + ex.GetType().Name,
-        MessageBoxButtons.OK,
-        MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly);
-    }
-
-    private static string BuildErrorMessage(Exception ex) {
-      string nl = Environment.NewLine;
-      StringBuilder sb = new StringBuilder();
-      sb.Append(ex.Message + nl + ex.StackTrace);
-
-      while (ex.InnerException != null) {
-        ex = ex.InnerException;
-        sb.Append(nl + "-----" + nl + ex.Message + nl + ex.StackTrace);
-      }
-      return sb.ToString();
     }
   }
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/Resources.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/Resources.Designer.cs	(revision 3757)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/Resources.Designer.cs	(revision 3758)
@@ -2,5 +2,5 @@
 // <auto-generated>
 //     This code was generated by a tool.
-//     Runtime Version:2.0.50727.4200
+//     Runtime Version:2.0.50727.4927
 //
 //     Changes to this file may cause incorrect behavior and will be lost if
@@ -96,4 +96,18 @@
         }
         
+        internal static System.Drawing.Bitmap Error {
+            get {
+                object obj = ResourceManager.GetObject("Error", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        internal static System.Drawing.Icon ErrorIcon {
+            get {
+                object obj = ResourceManager.GetObject("ErrorIcon", resourceCulture);
+                return ((System.Drawing.Icon)(obj));
+            }
+        }
+        
         internal static System.Drawing.Bitmap File {
             get {
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/Resources.resx
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/Resources.resx	(revision 3757)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/Resources.resx	(revision 3758)
@@ -134,4 +134,10 @@
     <value>Resources\VS2008ImageLibrary_Objects_Document.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="Error" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>Resources\VS2008ImageLibrary_Annotations_Error.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="ErrorIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>Resources\Error.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="File" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>Resources\VS2008ImageLibrary_Objects_File.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/Starter/StarterForm.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/Starter/StarterForm.cs	(revision 3757)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/Starter/StarterForm.cs	(revision 3758)
@@ -153,5 +153,5 @@
           catch (Exception ex) {
             stopped = false;
-            ThreadPool.QueueUserWorkItem(delegate(object exception) { ShowErrorMessageBox((Exception)exception); }, ex);
+            ThreadPool.QueueUserWorkItem(delegate(object exception) { ErrorHandling.ShowErrorDialog(this, (Exception)exception); }, ex);
             Thread.Sleep(5000); // sleep 5 seconds before autorestart
           }
@@ -179,24 +179,4 @@
     }
 
-    private void ShowErrorMessageBox(Exception ex) {
-      MessageBoxOptions options = RightToLeft == RightToLeft.Yes ? MessageBoxOptions.RightAlign | MessageBoxOptions.RtlReading : MessageBoxOptions.DefaultDesktopOnly;
-      MessageBox.Show(null,
-         BuildErrorMessage(ex),
-         "Error - " + ex.GetType().Name,
-         MessageBoxButtons.OK,
-         MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, options);
-    }
-    private static string BuildErrorMessage(Exception ex) {
-      string nl = Environment.NewLine;
-      StringBuilder sb = new StringBuilder();
-      sb.Append(ex.Message + nl + ex.StackTrace);
-
-      while (ex.InnerException != null) {
-        ex = ex.InnerException;
-        sb.Append(nl + "-----" + nl + ex.Message + nl + ex.StackTrace);
-      }
-      return sb.ToString();
-    }
-
     private void MainForm_FormClosing(object sender, FormClosingEventArgs e) {
       abortRequested = true;
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/DataAnalysisProblemDataView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/DataAnalysisProblemDataView.cs	(revision 3757)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/DataAnalysisProblemDataView.cs	(revision 3758)
@@ -30,4 +30,5 @@
 using HeuristicLab.Core.Views;
 using HeuristicLab.MainForm;
+using HeuristicLab.PluginInfrastructure;
 
 namespace HeuristicLab.Problems.DataAnalysis.Views {
@@ -56,5 +57,5 @@
         }
         catch (Exception ex) {
-          Auxiliary.ShowErrorMessageBox(ex);
+          ErrorHandling.ShowErrorDialog(this, ex);
         }
       }
Index: /trunk/sources/HeuristicLab.Problems.TravelingSalesman.Views/3.3/TravelingSalesmanProblemView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.TravelingSalesman.Views/3.3/TravelingSalesmanProblemView.cs	(revision 3757)
+++ /trunk/sources/HeuristicLab.Problems.TravelingSalesman.Views/3.3/TravelingSalesmanProblemView.cs	(revision 3758)
@@ -26,4 +26,5 @@
 using HeuristicLab.Core.Views;
 using HeuristicLab.MainForm;
+using HeuristicLab.PluginInfrastructure;
 
 namespace HeuristicLab.Problems.TravelingSalesman.Views {
@@ -95,5 +96,5 @@
         }
         catch (Exception ex) {
-          Auxiliary.ShowErrorMessageBox(ex);
+          ErrorHandling.ShowErrorDialog(this, ex);
         }
       }
Index: /trunk/sources/HeuristicLab.SequentialEngine/3.3/SequentialEngine.cs
===================================================================
--- /trunk/sources/HeuristicLab.SequentialEngine/3.3/SequentialEngine.cs	(revision 3757)
+++ /trunk/sources/HeuristicLab.SequentialEngine/3.3/SequentialEngine.cs	(revision 3758)
@@ -60,5 +60,5 @@
         catch (Exception ex) {
           ExecutionStack.Push(operation);
-          OnExceptionOccurred(ex);
+          OnExceptionOccurred(new OperatorExecutionException(operation.Operator, ex));
           Pause();
         }
