Index: /trunk/sources/HeuristicLab.ExtLibs/HeuristicLab.Netron/3.0.2672.12446/Netron.Diagramming.Core-3.0.2672.12446/Tools/ConnectionTool.cs
===================================================================
--- /trunk/sources/HeuristicLab.ExtLibs/HeuristicLab.Netron/3.0.2672.12446/Netron.Diagramming.Core-3.0.2672.12446/Tools/ConnectionTool.cs	(revision 2900)
+++ /trunk/sources/HeuristicLab.ExtLibs/HeuristicLab.Netron/3.0.2672.12446/Netron.Diagramming.Core-3.0.2672.12446/Tools/ConnectionTool.cs	(revision 2901)
@@ -84,6 +84,4 @@
     public void MouseUp(MouseEventArgs e) {
       if (IsActive) {
-        DeactivateTool();
-
         // First, make sure the initial point is far enough away from 
         // the final point to make a connection.
@@ -137,6 +135,5 @@
         //drop the painted ghost
         Controller.View.ResetGhost();
-        //release other tools
-        this.UnsuspendTools();
+        this.doDraw = false;
       }
     }
Index: /trunk/sources/HeuristicLab.ExtLibs/HeuristicLab.Netron/3.0.2672.12446/Netron.Diagramming.Core-3.0.2672.12446/Tools/ZoomAreaTool.cs
===================================================================
--- /trunk/sources/HeuristicLab.ExtLibs/HeuristicLab.Netron/3.0.2672.12446/Netron.Diagramming.Core-3.0.2672.12446/Tools/ZoomAreaTool.cs	(revision 2900)
+++ /trunk/sources/HeuristicLab.ExtLibs/HeuristicLab.Netron/3.0.2672.12446/Netron.Diagramming.Core-3.0.2672.12446/Tools/ZoomAreaTool.cs	(revision 2901)
@@ -124,5 +124,4 @@
             if (IsActive)
             {
-                DeactivateTool();
                 IView view = Controller.View;
                 if (view.Ghost != null)
Index: /trunk/sources/HeuristicLab.Operators.Views.GraphVisualization/3.3/OperatorGraphView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Operators.Views.GraphVisualization/3.3/OperatorGraphView.cs	(revision 2900)
+++ /trunk/sources/HeuristicLab.Operators.Views.GraphVisualization/3.3/OperatorGraphView.cs	(revision 2901)
@@ -46,4 +46,8 @@
       this.graphVisualizationInfoView.Controller.OnShowContextMenu += new EventHandler<EntityMenuEventArgs>(Controller_OnShowContextMenu);
       this.graphVisualizationInfoView.Controller.Model.Selection.OnNewSelection += new EventHandler(Controller_SelectionChanged);
+      foreach (ITool tool in this.graphVisualizationInfoView.Controller.Tools) {
+        tool.OnToolActivate += new EventHandler<ToolEventArgs>(tool_OnToolActivate);
+        tool.OnToolDeactivate += new EventHandler<ToolEventArgs>(tool_OnToolDeactivate);
+      }
     }
 
@@ -183,14 +187,42 @@
     #endregion
 
+    private void tool_OnToolActivate(object sender, ToolEventArgs e) {
+      Button button = GetButtonForTool(e.Properties.Name);
+      if (button != null)
+        button.Enabled = false;
+    }
+
+    private void tool_OnToolDeactivate(object sender, ToolEventArgs e) {
+      Button button = GetButtonForTool(e.Properties.Name);
+      if (button != null)
+        button.Enabled = true;
+    }
+
+    private Button GetButtonForTool(string toolName) {
+      Button button = null;
+      switch (toolName) {
+        case ControllerBase.SelectionToolName:
+          button = this.selectButton;
+          break;
+        case ControllerBase.PanToolName:
+          button = this.panButton;
+          break;
+        case ControllerBase.ConnectionToolName:
+          button = this.connectButton;
+          break;
+        case ControllerBase.ZoomAreaToolName:
+          button = this.zoomAreaButton;
+          break;
+      }
+      return button;
+    }
+
     private void selectButton_Click(object sender, EventArgs e) {
       ITool tool = this.graphVisualizationInfoView.Controller.Tools.Where(t => t.Name == ControllerBase.SelectionToolName).First();
       tool.IsSuspended = false;
-      tool = this.graphVisualizationInfoView.Controller.Tools.Where(t => t.Name == ControllerBase.PanToolName).First();
-      this.graphVisualizationInfoView.Controller.DeactivateTool(tool);
+      this.graphVisualizationInfoView.Controller.DeactivateAllTools();
     }
 
     private void panButton_Click(object sender, EventArgs e) {
-      ITool tool = this.graphVisualizationInfoView.Controller.Tools.Where(t => t.Name == ControllerBase.SelectionToolName).First();
-      tool.IsSuspended = true;
       this.graphVisualizationInfoView.Controller.ActivateTool(ControllerBase.PanToolName);
     }
