Index: /trunk/sources/HeuristicLab.Hive.Client.Console/EventLogEntryForm.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Console/EventLogEntryForm.Designer.cs	(revision 1001)
+++ /trunk/sources/HeuristicLab.Hive.Client.Console/EventLogEntryForm.Designer.cs	(revision 1002)
@@ -24,72 +24,42 @@
     /// </summary>
     private void InitializeComponent() {
-      this.lbMessage = new System.Windows.Forms.ListBox();
       this.lbDateLabel = new System.Windows.Forms.Label();
-      this.lbTimeLabel = new System.Windows.Forms.Label();
       this.lbDate = new System.Windows.Forms.Label();
-      this.lbTime = new System.Windows.Forms.Label();
       this.lbId = new System.Windows.Forms.Label();
       this.lbIdLabel = new System.Windows.Forms.Label();
+      this.txtMessage = new System.Windows.Forms.TextBox();
       this.SuspendLayout();
-      // 
-      // lbMessage
-      // 
-      this.lbMessage.BackColor = System.Drawing.SystemColors.InactiveBorder;
-      this.lbMessage.FormattingEnabled = true;
-      this.lbMessage.Location = new System.Drawing.Point(12, 97);
-      this.lbMessage.MultiColumn = true;
-      this.lbMessage.Name = "lbMessage";
-      this.lbMessage.Size = new System.Drawing.Size(254, 160);
-      this.lbMessage.TabIndex = 0;
       // 
       // lbDateLabel
       // 
       this.lbDateLabel.AutoSize = true;
-      this.lbDateLabel.Location = new System.Drawing.Point(13, 13);
+      this.lbDateLabel.Location = new System.Drawing.Point(13, 27);
       this.lbDateLabel.Name = "lbDateLabel";
-      this.lbDateLabel.Size = new System.Drawing.Size(33, 13);
+      this.lbDateLabel.Size = new System.Drawing.Size(80, 13);
       this.lbDateLabel.TabIndex = 1;
-      this.lbDateLabel.Text = "Date:";
-      // 
-      // lbTimeLabel
-      // 
-      this.lbTimeLabel.AutoSize = true;
-      this.lbTimeLabel.Location = new System.Drawing.Point(13, 37);
-      this.lbTimeLabel.Name = "lbTimeLabel";
-      this.lbTimeLabel.Size = new System.Drawing.Size(33, 13);
-      this.lbTimeLabel.TabIndex = 2;
-      this.lbTimeLabel.Text = "Time:";
+      this.lbDateLabel.Text = "Date and Time:";
       // 
       // lbDate
       // 
       this.lbDate.AutoSize = true;
-      this.lbDate.Location = new System.Drawing.Point(52, 13);
+      this.lbDate.Location = new System.Drawing.Point(89, 27);
       this.lbDate.Name = "lbDate";
-      this.lbDate.Size = new System.Drawing.Size(33, 13);
+      this.lbDate.Size = new System.Drawing.Size(23, 13);
       this.lbDate.TabIndex = 3;
-      this.lbDate.Text = "Date:";
-      // 
-      // lbTime
-      // 
-      this.lbTime.AutoSize = true;
-      this.lbTime.Location = new System.Drawing.Point(52, 37);
-      this.lbTime.Name = "lbTime";
-      this.lbTime.Size = new System.Drawing.Size(33, 13);
-      this.lbTime.TabIndex = 4;
-      this.lbTime.Text = "Time:";
+      this.lbDate.Text = "null";
       // 
       // lbId
       // 
       this.lbId.AutoSize = true;
-      this.lbId.Location = new System.Drawing.Point(52, 60);
+      this.lbId.Location = new System.Drawing.Point(27, 9);
       this.lbId.Name = "lbId";
-      this.lbId.Size = new System.Drawing.Size(19, 13);
+      this.lbId.Size = new System.Drawing.Size(23, 13);
       this.lbId.TabIndex = 6;
-      this.lbId.Text = "Id:";
+      this.lbId.Text = "null";
       // 
       // lbIdLabel
       // 
       this.lbIdLabel.AutoSize = true;
-      this.lbIdLabel.Location = new System.Drawing.Point(13, 60);
+      this.lbIdLabel.Location = new System.Drawing.Point(13, 9);
       this.lbIdLabel.Name = "lbIdLabel";
       this.lbIdLabel.Size = new System.Drawing.Size(19, 13);
@@ -97,18 +67,26 @@
       this.lbIdLabel.Text = "Id:";
       // 
+      // txtMessage
+      // 
+      this.txtMessage.BackColor = System.Drawing.SystemColors.InactiveBorder;
+      this.txtMessage.Location = new System.Drawing.Point(16, 55);
+      this.txtMessage.Multiline = true;
+      this.txtMessage.Name = "txtMessage";
+      this.txtMessage.ReadOnly = true;
+      this.txtMessage.Size = new System.Drawing.Size(250, 179);
+      this.txtMessage.TabIndex = 7;
+      // 
       // EventLogEntryForm
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.ClientSize = new System.Drawing.Size(278, 269);
+      this.ClientSize = new System.Drawing.Size(278, 246);
+      this.Controls.Add(this.txtMessage);
       this.Controls.Add(this.lbId);
       this.Controls.Add(this.lbIdLabel);
-      this.Controls.Add(this.lbTime);
       this.Controls.Add(this.lbDate);
-      this.Controls.Add(this.lbTimeLabel);
       this.Controls.Add(this.lbDateLabel);
-      this.Controls.Add(this.lbMessage);
       this.Name = "EventLogEntryForm";
-      this.Text = "Eventlog Entry Details";
+      this.Text = "Detail";
       this.ResumeLayout(false);
       this.PerformLayout();
@@ -118,11 +96,9 @@
     #endregion
 
-    private System.Windows.Forms.ListBox lbMessage;
     private System.Windows.Forms.Label lbDateLabel;
-    private System.Windows.Forms.Label lbTimeLabel;
     private System.Windows.Forms.Label lbDate;
-    private System.Windows.Forms.Label lbTime;
     private System.Windows.Forms.Label lbId;
     private System.Windows.Forms.Label lbIdLabel;
+    private System.Windows.Forms.TextBox txtMessage;
   }
 }
Index: /trunk/sources/HeuristicLab.Hive.Client.Console/EventLogEntryForm.cs
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Console/EventLogEntryForm.cs	(revision 1001)
+++ /trunk/sources/HeuristicLab.Hive.Client.Console/EventLogEntryForm.cs	(revision 1002)
@@ -14,7 +14,6 @@
       InitializeComponent();
       lbDate.Text = curEventEntry.EventDate;
-      lbTime.Text = curEventEntry.EventTime;
       lbId.Text = curEventEntry.ID;
-      lbMessage.Items.Add(curEventEntry.Message);
+      txtMessage.Text = curEventEntry.Message;
     }
   }
Index: /trunk/sources/HeuristicLab.Hive.Client.Console/HeuristicLab.Hive.Client.Console.csproj
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Console/HeuristicLab.Hive.Client.Console.csproj	(revision 1001)
+++ /trunk/sources/HeuristicLab.Hive.Client.Console/HeuristicLab.Hive.Client.Console.csproj	(revision 1002)
@@ -113,4 +113,5 @@
       <SubType>Component</SubType>
     </Compile>
+    <Compile Include="ListViewColumnSorterDate.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
     <EmbeddedResource Include="EventLogEntryForm.resx">
Index: /trunk/sources/HeuristicLab.Hive.Client.Console/HiveClientConsole.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Console/HiveClientConsole.Designer.cs	(revision 1001)
+++ /trunk/sources/HeuristicLab.Hive.Client.Console/HiveClientConsole.Designer.cs	(revision 1002)
@@ -74,8 +74,8 @@
       this.chMessage = new System.Windows.Forms.ColumnHeader();
       this.chDate = new System.Windows.Forms.ColumnHeader();
-      this.chTime = new System.Windows.Forms.ColumnHeader();
       this.ilEventLog = new System.Windows.Forms.ImageList(this.components);
       this.tabPage2 = new System.Windows.Forms.TabPage();
       this.gbOnlineTime = new System.Windows.Forms.GroupBox();
+      this.label1 = new System.Windows.Forms.Label();
       this.gbServerConnection = new System.Windows.Forms.GroupBox();
       this.lbStatus = new System.Windows.Forms.Label();
@@ -87,5 +87,4 @@
       this.lbServerIPCaption = new System.Windows.Forms.Label();
       this.lbPortCaption = new System.Windows.Forms.Label();
-      this.label1 = new System.Windows.Forms.Label();
       this.tcClientConsole.SuspendLayout();
       this.tpConnection.SuspendLayout();
@@ -155,10 +154,10 @@
       // 
       this.chSince.Text = "Since";
-      this.chSince.Width = 74;
+      this.chSince.Width = 120;
       // 
       // chProgress
       // 
       this.chProgress.Text = "Progress";
-      this.chProgress.Width = 260;
+      this.chProgress.Width = 200;
       // 
       // gbCommon
@@ -189,7 +188,7 @@
       this.lbJobsAborted.Location = new System.Drawing.Point(195, 114);
       this.lbJobsAborted.Name = "lbJobsAborted";
-      this.lbJobsAborted.Size = new System.Drawing.Size(54, 13);
+      this.lbJobsAborted.Size = new System.Drawing.Size(50, 13);
       this.lbJobsAborted.TabIndex = 20;
-      this.lbJobsAborted.Text = "undefined";
+      this.lbJobsAborted.Text = "loading...";
       // 
       // lbJobdone
@@ -198,7 +197,7 @@
       this.lbJobdone.Location = new System.Drawing.Point(62, 114);
       this.lbJobdone.Name = "lbJobdone";
-      this.lbJobdone.Size = new System.Drawing.Size(54, 13);
+      this.lbJobdone.Size = new System.Drawing.Size(50, 13);
       this.lbJobdone.TabIndex = 19;
-      this.lbJobdone.Text = "undefined";
+      this.lbJobdone.Text = "loading...";
       // 
       // lbJobsFetched
@@ -207,7 +206,7 @@
       this.lbJobsFetched.Location = new System.Drawing.Point(74, 90);
       this.lbJobsFetched.Name = "lbJobsFetched";
-      this.lbJobsFetched.Size = new System.Drawing.Size(54, 13);
+      this.lbJobsFetched.Size = new System.Drawing.Size(50, 13);
       this.lbJobsFetched.TabIndex = 18;
-      this.lbJobsFetched.Text = "undefined";
+      this.lbJobsFetched.Text = "loading...";
       // 
       // lbGuid
@@ -216,7 +215,7 @@
       this.lbGuid.Location = new System.Drawing.Point(41, 16);
       this.lbGuid.Name = "lbGuid";
-      this.lbGuid.Size = new System.Drawing.Size(39, 13);
+      this.lbGuid.Size = new System.Drawing.Size(50, 13);
       this.lbGuid.TabIndex = 15;
-      this.lbGuid.Text = "not set";
+      this.lbGuid.Text = "loading...";
       // 
       // lbGuidCaption
@@ -234,7 +233,7 @@
       this.lbCs.Location = new System.Drawing.Point(94, 40);
       this.lbCs.Name = "lbCs";
-      this.lbCs.Size = new System.Drawing.Size(54, 13);
+      this.lbCs.Size = new System.Drawing.Size(50, 13);
       this.lbCs.TabIndex = 17;
-      this.lbCs.Text = "undefined";
+      this.lbCs.Text = "loading...";
       // 
       // lbConnectionStatus
@@ -243,11 +242,13 @@
       this.lbConnectionStatus.Location = new System.Drawing.Point(97, 66);
       this.lbConnectionStatus.Name = "lbConnectionStatus";
-      this.lbConnectionStatus.Size = new System.Drawing.Size(54, 13);
+      this.lbConnectionStatus.Size = new System.Drawing.Size(50, 13);
       this.lbConnectionStatus.TabIndex = 16;
-      this.lbConnectionStatus.Text = "undefined";
+      this.lbConnectionStatus.Text = "loading...";
       // 
       // zGJobs
       // 
-      this.zGJobs.Location = new System.Drawing.Point(277, 16);
+      this.zGJobs.BackColor = System.Drawing.SystemColors.Control;
+      this.zGJobs.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
+      this.zGJobs.Location = new System.Drawing.Point(255, 14);
       this.zGJobs.Name = "zGJobs";
       this.zGJobs.ScrollGrace = 0;
@@ -258,5 +259,5 @@
       this.zGJobs.ScrollMinY = 0;
       this.zGJobs.ScrollMinY2 = 0;
-      this.zGJobs.Size = new System.Drawing.Size(127, 103);
+      this.zGJobs.Size = new System.Drawing.Size(149, 111);
       this.zGJobs.TabIndex = 14;
       // 
@@ -322,6 +323,5 @@
             this.chId,
             this.chMessage,
-            this.chDate,
-            this.chTime});
+            this.chDate});
       this.lvLog.FullRowSelect = true;
       this.lvLog.GridLines = true;
@@ -336,4 +336,5 @@
       this.lvLog.View = System.Windows.Forms.View.Details;
       this.lvLog.DoubleClick += new System.EventHandler(this.lvLog_DoubleClick);
+      this.lvLog.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.lvLog_ColumnClick);
       // 
       // chType
@@ -345,4 +346,5 @@
       // 
       this.chId.Text = "ID";
+      this.chId.Width = 50;
       // 
       // chMessage
@@ -354,10 +356,5 @@
       // 
       this.chDate.Text = "Date";
-      this.chDate.Width = 63;
-      // 
-      // chTime
-      // 
-      this.chTime.Text = "Time";
-      this.chTime.Width = 65;
+      this.chDate.Width = 125;
       // 
       // ilEventLog
@@ -389,4 +386,14 @@
       this.gbOnlineTime.TabStop = false;
       this.gbOnlineTime.Text = "Online time";
+      // 
+      // label1
+      // 
+      this.label1.AutoSize = true;
+      this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+      this.label1.Location = new System.Drawing.Point(116, 169);
+      this.label1.Name = "label1";
+      this.label1.Size = new System.Drawing.Size(184, 25);
+      this.label1.TabIndex = 0;
+      this.label1.Text = "comming soon...";
       // 
       // gbServerConnection
@@ -412,7 +419,7 @@
       this.lbStatus.Location = new System.Drawing.Point(74, 80);
       this.lbStatus.Name = "lbStatus";
-      this.lbStatus.Size = new System.Drawing.Size(54, 13);
+      this.lbStatus.Size = new System.Drawing.Size(50, 13);
       this.lbStatus.TabIndex = 7;
-      this.lbStatus.Text = "undefined";
+      this.lbStatus.Text = "loading...";
       // 
       // lbStatusCaption
@@ -477,14 +484,4 @@
       this.lbPortCaption.Text = "Port:";
       // 
-      // label1
-      // 
-      this.label1.AutoSize = true;
-      this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-      this.label1.Location = new System.Drawing.Point(98, 154);
-      this.label1.Name = "label1";
-      this.label1.Size = new System.Drawing.Size(184, 25);
-      this.label1.TabIndex = 0;
-      this.label1.Text = "comming soon...";
-      // 
       // HiveClientConsole
       // 
@@ -494,5 +491,5 @@
       this.Controls.Add(this.tcClientConsole);
       this.Name = "HiveClientConsole";
-      this.Text = "Client Console";
+      this.Text = "Client Console (loading...)";
       this.Load += new System.EventHandler(this.HiveClientConsole_Load);
       this.Resize += new System.EventHandler(this.HiveClientConsole_Resize);
@@ -521,5 +518,4 @@
     private System.Windows.Forms.ColumnHeader chMessage;
     private System.Windows.Forms.ColumnHeader chDate;
-    private System.Windows.Forms.ColumnHeader chTime;
     private System.Windows.Forms.Label lbJobdoneCaption;
     private System.Windows.Forms.Label lbCsCaption;
Index: /trunk/sources/HeuristicLab.Hive.Client.Console/HiveClientConsole.cs
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Console/HiveClientConsole.cs	(revision 1001)
+++ /trunk/sources/HeuristicLab.Hive.Client.Console/HiveClientConsole.cs	(revision 1002)
@@ -41,10 +41,16 @@
   public partial class HiveClientConsole : Form {
 
-    EventLog HiveClientEventLog;
-    ClientConsoleCommunicatorClient cccc;
-    System.Windows.Forms.Timer refreshTimer;
+    private EventLog HiveClientEventLog;
+    private ClientConsoleCommunicatorClient cccc;
+    private System.Windows.Forms.Timer refreshTimer;
+    private ListViewColumnSorterDate lvwColumnSorter;
+
 
     public HiveClientConsole() {
       InitializeComponent();
+      lvwColumnSorter = new ListViewColumnSorterDate();
+      lvLog.ListViewItemSorter = lvwColumnSorter;
+      lvwColumnSorter.SortColumn = 3;
+      lvwColumnSorter.Order = SortOrder.Descending;
       InitTimer();
       ConnectToClient();
@@ -65,8 +71,6 @@
     
     private void RefreshGui() {
-      StatusCommons sc = new StatusCommons();
-      
       try {
-        sc = cccc.GetStatusInfos();
+        cccc.GetStatusInfosAsync();
       }
       catch (Exception ex) {
@@ -76,44 +80,4 @@
           this.Close();
       }
-
-      lbGuid.Text = sc.ClientGuid.ToString();
-      lbCs.Text = sc.ConnectedSince.ToString();
-      lbConnectionStatus.Text = sc.Status.ToString();
-      lbJobdone.Text = sc.JobsDone.ToString();
-      lbJobsAborted.Text = sc.JobsAborted.ToString();
-      lbJobsFetched.Text = sc.JobsFetched.ToString();
-
-      this.Text = "Client Console (" + sc.Status.ToString() + ")";
-      lbStatus.Text = sc.Status.ToString();
-
-      ListViewItem curJobStatusItem;
-
-      if (sc.Jobs != null) {
-        lvJobDetail.Items.Clear();
-        double progress;
-        foreach (JobStatus curJob in sc.Jobs) {
-          curJobStatusItem = new ListViewItem(curJob.JobId.ToString());
-          curJobStatusItem.SubItems.Add(curJob.Since.ToString());
-          progress = curJob.Progress * 100;
-          curJobStatusItem.SubItems.Add(progress.ToString());
-          lvJobDetail.Items.Add(curJobStatusItem);
-        }
-      }
-
-      UpdateGraph(zGJobs, sc.JobsDone, sc.JobsAborted);
- 
-      if (sc.Status == NetworkEnumWcfConnState.Connected) {
-        btConnect.Enabled = false;
-        btnDisconnect.Enabled = true;
-        ConnectionContainer curConnection = cccc.GetCurrentConnection();
-        tbIPAdress.Text = curConnection.IPAdress;
-        tbPort.Text = curConnection.Port.ToString();
-      } else if (sc.Status == NetworkEnumWcfConnState.Disconnected) {
-        btConnect.Enabled = true;
-        btnDisconnect.Enabled = false;
-      } else if (sc.Status == NetworkEnumWcfConnState.Failed) {
-        btConnect.Enabled = true;
-        btnDisconnect.Enabled = false;
-      }
     }
 
@@ -121,4 +85,6 @@
       try {
         cccc = new ClientConsoleCommunicatorClient();
+        cccc.GetStatusInfosCompleted += new EventHandler<GetStatusInfosCompletedEventArgs>(cccc_GetStatusInfosCompleted);
+        cccc.GetCurrentConnectionCompleted += new EventHandler<GetCurrentConnectionCompletedEventArgs>(cccc_GetCurrentConnectionCompleted);
       }
       catch (Exception) {
@@ -127,4 +93,58 @@
         if (res == DialogResult.OK)
           this.Close();
+      }
+    }
+
+    void cccc_GetCurrentConnectionCompleted(object sender, GetCurrentConnectionCompletedEventArgs e) {
+      if (e.Error == null) {
+        ConnectionContainer curConnection = e.Result;
+        tbIPAdress.Text = curConnection.IPAdress;
+        tbPort.Text = curConnection.Port.ToString();
+      }
+    }
+
+    void cccc_GetStatusInfosCompleted(object sender, GetStatusInfosCompletedEventArgs e) {
+
+      if (e.Error == null) {
+        StatusCommons sc = e.Result;
+
+        lbGuid.Text = sc.ClientGuid.ToString();
+        lbCs.Text = sc.ConnectedSince.ToString();
+        lbConnectionStatus.Text = sc.Status.ToString();
+        lbJobdone.Text = sc.JobsDone.ToString();
+        lbJobsAborted.Text = sc.JobsAborted.ToString();
+        lbJobsFetched.Text = sc.JobsFetched.ToString();
+
+        this.Text = "Client Console (" + sc.Status.ToString() + ")";
+        lbStatus.Text = sc.Status.ToString();
+
+        ListViewItem curJobStatusItem;
+
+        if (sc.Jobs != null) {
+          lvJobDetail.Items.Clear();
+          double progress;
+          foreach (JobStatus curJob in sc.Jobs) {
+            curJobStatusItem = new ListViewItem(curJob.JobId.ToString());
+            curJobStatusItem.SubItems.Add(curJob.Since.ToString());
+            progress = curJob.Progress * 100;
+            curJobStatusItem.SubItems.Add(progress.ToString());
+            lvJobDetail.Items.Add(curJobStatusItem);
+          }
+          lvJobDetail.Sort();
+        }
+
+        UpdateGraph(zGJobs, sc.JobsDone, sc.JobsAborted);
+
+        if (sc.Status == NetworkEnumWcfConnState.Connected) {
+          btConnect.Enabled = false;
+          btnDisconnect.Enabled = true;
+          cccc.GetCurrentConnectionAsync();
+        } else if (sc.Status == NetworkEnumWcfConnState.Disconnected) {
+          btConnect.Enabled = true;
+          btnDisconnect.Enabled = false;
+        } else if (sc.Status == NetworkEnumWcfConnState.Failed) {
+          btConnect.Enabled = true;
+          btnDisconnect.Enabled = false;
+        }
       }
     }
@@ -143,8 +163,8 @@
         curEventLogEntry.SubItems.Add(eve.InstanceId.ToString());
         curEventLogEntry.SubItems.Add(eve.Message);
-        curEventLogEntry.SubItems.Add(eve.TimeGenerated.Date.ToString());
-        curEventLogEntry.SubItems.Add(eve.TimeGenerated.TimeOfDay.ToString());
+        curEventLogEntry.SubItems.Add(eve.TimeGenerated.ToString());
         lvLog.Items.Add(curEventLogEntry);
       }
+      lvJobDetail.Sort();
     }
 
@@ -162,9 +182,9 @@
         if (ev.EntryType == EventLogEntryType.Error)
           curEventLogEntry = new ListViewItem("", 1);
-        curEventLogEntry.SubItems.Add(ev.EventID.ToString());
+        curEventLogEntry.SubItems.Add(ev.InstanceId.ToString());
         curEventLogEntry.SubItems.Add(ev.Message);
-        curEventLogEntry.SubItems.Add(ev.TimeGenerated.Date.ToString());
-        curEventLogEntry.SubItems.Add(ev.TimeGenerated.TimeOfDay.ToString());
+        curEventLogEntry.SubItems.Add(ev.TimeGenerated.ToString());
         lvLog.Items.Add(curEventLogEntry);
+        lvJobDetail.Sort();
       }
     }
@@ -175,18 +195,32 @@
 
     private void UpdateGraph(ZedGraphControl zgc, int jobsDone, int jobsAborted) {
-      zgc.GraphPane.GraphObjList.Clear();
       GraphPane myPane = zgc.GraphPane;
-
-      // Set the titles and axis labels
-      myPane.Legend.IsVisible = false;
-      myPane.Title.IsVisible = false;
+      myPane.GraphObjList.Clear();
+
+
+      myPane.Title.IsVisible = false;  // no title
+      myPane.Border.IsVisible = false; // no border
+      myPane.Chart.Border.IsVisible = false; // no border around the chart
+      myPane.XAxis.IsVisible = false;  // no x-axis
+      myPane.YAxis.IsVisible = false;  // no y-axis
+      myPane.Legend.IsVisible = false; // no legend
+      
+      myPane.Chart.Fill.Type = FillType.None;
       myPane.Fill.Type = FillType.None;
 
-      double sum = jobsDone + jobsAborted;
-      double perDone = jobsDone / sum * 100;
-      double perAborted = jobsAborted / sum * 100;
-
-      myPane.AddPieSlice(perAborted, Color.Red, 0, "Jobs aborted");
+      //// Set the titles and axis labels
+      //myPane.Legend.IsVisible = false;
+      //myPane.Title.IsVisible = false;
+      ////myPane.Fill.Type = FillType.None;
+      ////myPane.Fill = new Fill();
+      ////myPane.Fill.Color = Color.Transparent;
+
+      double sum = (double)jobsDone + jobsAborted;
+      double perDone = (double)jobsDone / sum * 100;
+      double perAborted = (double)jobsAborted / sum * 100;
+
       myPane.AddPieSlice(perDone, Color.Green, 0.1, "Jobs done");
+      myPane.AddPieSlice(perAborted, Color.Red, 0.1, "Jobs aborted");
+      
       myPane.AxisChange();
     }
@@ -198,5 +232,5 @@
     private void lvLog_DoubleClick(object sender, EventArgs e) {
       ListViewItem lvi = lvLog.SelectedItems[0];
-      HiveEventEntry hee = new HiveEventEntry(lvi.SubItems[2].Text, lvi.SubItems[3].Text, lvi.SubItems[4].Text, lvi.SubItems[1].Text);
+      HiveEventEntry hee = new HiveEventEntry(lvi.SubItems[2].Text, lvi.SubItems[3].Text, lvi.SubItems[1].Text);
       
       Form EventlogDetails = new EventLogEntryForm(hee);
@@ -222,4 +256,23 @@
       cccc.Disconnect();
     }
+
+    private void lvLog_ColumnClick(object sender, ColumnClickEventArgs e) {
+      // Determine if clicked column is already the column that is being sorted.
+      if (e.Column == lvwColumnSorter.SortColumn) {
+        // Reverse the current sort direction for this column.
+        if (lvwColumnSorter.Order == SortOrder.Ascending) {
+          lvwColumnSorter.Order = SortOrder.Descending;
+        } else {
+          lvwColumnSorter.Order = SortOrder.Ascending;
+        }
+      } else {
+        // Set the column number that is to be sorted; default to ascending.
+        lvwColumnSorter.SortColumn = e.Column;
+        lvwColumnSorter.Order = SortOrder.Ascending;
+      }
+
+      // Perform the sort with these new sort options.
+      lvLog.Sort();
+    }
   }
 }
Index: /trunk/sources/HeuristicLab.Hive.Client.Console/HiveClientConsole.resx
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Console/HiveClientConsole.resx	(revision 1001)
+++ /trunk/sources/HeuristicLab.Hive.Client.Console/HiveClientConsole.resx	(revision 1002)
@@ -127,44 +127,44 @@
         ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABS
         CgAAAk1TRnQBSQFMAgEBAgEAAQQBAAEEAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
-        AwABEAMAAQEBAAEgBgABECoAAUMCAQF0AUECCAHxAwgB/wFdAgMB1AEgAgEBLCwAAUMCAQF0AUECCAHx
-        AwgB/wFdAgMB1AEgAgEBLKQAAT0CCAHyAZMBYgEIAf8BvwF7AQgB/wG9AXgBCAH/AboBdQEIAf8BuAFy
-        AQgB/wG2AXABCAH/ATwBJQEIAf8BPQIBAWUcAAE9AggB8gIIAaQB/wIIAdYB/wIIAdQB/wIIAdIB/wII
-        AdAB/wIIAc4B/wIIAUMB/wE9AgEBZZgAARIBDgEIAf8BxwGBAQgB/wHDAYABCAH/AbEBagEIAf8BsQFq
-        AQgB/wGxAWoBCAH/AbEBagEIAf8BswFsAQgB/wG2AXABCAH/AbQBbQEIAf8BVQIFAeQUAAIIARMB/wII
-        AdwB/wIIAdkB/wIIAcoB/wIIAcoB/wIIAcoB/wIIAcoB/wIIAcsB/wIIAc4B/wIIAcwB/wFVAgUB5JAA
-        AwgB/wHLAYEBCAH/AbsBdgEIAf8BtgFwAQgB/wG2AXABCAH/Ae4B3AHEBf8BvgGBASUB/wG2AXABCAH/
-        AbYBcAEIAf8BtgFwAQgB/wG0AW0BCAH/AUkCAgGGDAADCAH/AggB4AH/AggB0gH/AggBzgH/AjUB1gH/
-        AggBzgH/AggBzgH/AggBzgH/AgsBzgH/AggBzgH/AggBzgH/AggBzAH/AUkCAgGGiAABLAIBAUIB0AGG
-        AQgB/wHHAYEBCAH/AboBdQEIAf8BugF1AQgB/wG6AXUBCAH/AdABnAFZBf8BugF1AQgB/wG6AXUBCAH/
-        AboBdQEIAf8BugF1AQgB/wG2AXABCAH/AVwBNwEIAf8IAAEsAgEBQgIIAeQB/wIIAdwB/wIIAdIB/wKf
-        Ae0F/wJOAd4B/wIIAdIB/wL0Af0F/wILAdIB/wIIAdIB/wIIAc4B/wIIAWcB/4gAAwgB/wHSAYkBCAH/
-        Ab8BewEIAf8BvwF7AQgB/wG/AXsBCAH/Ab8BewEIAf8B0wGfAVkF/wG/AXsBCAH/Ab8BewEIAf8BvwF7
-        AQgB/wG/AXsBCAH/Ab4BegEIAf8BtgFwAQgB/wE2AgEBVwQAAwgB/wIIAeUB/wIIAdYB/wIIAdYN/wL1
-        Af0J/wLiAfoB/wIIAdYB/wIIAdUB/wIIAc4B/wE2AgEBV4QAAVABOAEIAf8B1AGMAQgB/wHEAYABCAH/
-        AcQBgAEIAf8BxAGAAQgB/wHEAYABCAH/AdcBpAFaBf8BxAGAAQgB/wHEAYABCAH/AcQBgAEIAf8BxAGA
-        AQgB/wHEAYABCAH/AbgBcgEIAf8BTQIHAewEAAIIAVYB/wIIAegB/wIIAdoB/wIIAdoB/wIIAdoR/wLi
-        AfoB/wIIAdoB/wIIAdoB/wIIAdoB/wIIAdAB/wFNAgcB7IQAAXABTQEIAf8B1wGOAQgB/wHJAYEBCAH/
-        AckBgQEIAf8ByQGBAQgB/wHJAYEBCAn/AckBgQEIAf8ByQGBAQgB/wHJAYEBCAH/AckBgQEIAf8ByQGB
-        AQgB/wG6AXUBCAH/AwgB/wQAAggBeQH/AggB6QH/AggB3gH/AggB3gH/AggB3gH/AvQB/Q3/Ak4B5wH/
-        AggB3gH/AggB3gH/AggB3gH/AggB0gH/AwgB/4QAAWABPgEIAf8B2QGRAQgB/wHOAYMBCAH/Ac4BgwEI
-        Af8BzgGDAQgB/wHOAYMBCAH/Ac4BgwEIAf8B1wGcATkB/wHOAYMBCAH/Ac4BgwEIAf8BzgGDAQgB/wHO
-        AYMBCAH/Ac4BgwEIAf8BvQF4AQgB/wEjAggB+QQAAQgBDQFfAf8CCAHsAf8CCAHiAf8CCAHiAf8C9AH9
-        Ff8CTgHqAf8CCAHiAf8CCAHiAf8CCAHUAf8BIwIIAfmEAAELAQkBCAH/AdsBlAEIAf8B0gGJAQgB/wHS
-        AYkBCAH/AdIBiQEIAf8B0gGJAQgB/wHSAYkBCAH/AesBywGQAf8B0gGJAQgB/wHSAYkBCAH/AdIBiQEI
-        Af8B0gGJAQgB/wHEAYEBCAH/Ab8BewEIAf8BUQICAZsEAAIIAQsB/wIIAe0B/wIIAeYB/wIIAeUB/wL9
-        Af4F/wLiAfwB/wIIAeUJ/wJ5AfEB/wIIAeUB/wIIAdoB/wIIAdYB/wFRAgIBm4QAAVgCAgGyAd4BmAEI
-        Af8B2wGUAQgB/wHXAY4BCAH/AdcBjgEIAf8B1wGOAQgB/wH7AfYB6wX/AdcBjgEIAf8B1wGOAQgB/wHX
-        AY4BCAH/AdYBjQEIAf8BxAGAAQgB/wGpAWkBCAH/CAABWAICAbIBCAESAe8B/wIIAe0B/wIIAekB/wII
-        AekB/wLhAfwB/wIIAekB/wIIAekB/wIIAekB/wJ5AfMB/wIIAekB/wIIAegB/wIIAdoB/wEIARABnQH/
-        jAABQgEnAQgB/wHdAZcBCAH/AdsBlAEIAf8B2wGUAQgB/wHbAZQBCAH/AdsBlAEIAf8B3AGXAQ4B/wHb
-        AZQBCAH/AdsBlAEIAf8B1QGMAQgB/wHJAYEBCAH/AdEBiAEIAf8BGAIIAfwMAAIIATwB/wIIAe8B/wII
-        Ae0B/wIIAe0B/wIIAe0B/wIIAe0B/wIIAe0B/wIIAe0B/wIIAe0B/wIIAegB/wIIAd4B/wEIARsB4gH/
-        ARgCCAH8jAABGQIBASEBkAFcAQgB/wHfAZkBCAH/AdsBlAEIAf8B2QGRAQgB/wHYAZABCAH/AdgBkAEI
-        Af8B0wGKAQgB/wHQAYYBCAH/Ac4BgwEIAf8B2gGSAQgB/wETAQ4BCAH/EAABGQIBASECCAGHAf8BCAEO
-        AfEB/wIIAe0B/wIIAewB/wIIAesB/wIIAesB/wIIAeYB/wIIAeQB/wIIAeIB/wEIASUB5gH/AggBEgH/
-        lAABEgIBARYBLQEfAQgB/wHSAYkBCAH/AeIBnQEIAf8B2QGRAQgB/wHXAY4BCAH/AdUBjAEIAf8B4QGb
-        AQgB/wHOAYQBCAH/ARACCAH+GAABEgIBARYCCAEsAf8BCAEOAdMB/wEIAR8B9AH/AggB7AH/AggB6QH/
-        AQgBCQHoAf8BCAEnAfAB/wIIAcwB/wEQAggB/qAAAUYCAQF9AwgB/wFZAUABCAH/AXoBWQEIAf8BOgEr
-        AQgB/wEQAggB/gEUAgEBGiQAAUYCAQF9AwgB/wIIAVwB/wIIAYEB/wIIATwB/wEQAggB/gEUAgEBGv8A
+        AwABEAMAAQEBAAEgBgABECoAAUMCAQF0AUkCCQHxAwoB/wFfAgMB1AEgAgEBLCwAAUMCAQF0AUkCCQHx
+        AwoB/wFfAgMB1AEgAgEBLKQAAUcCCgHyAZMBZAEKAf8BvwF9AQoB/wG9AXoBCgH/AboBdwEKAf8BuAF0
+        AQoB/wG2AXIBCgH/AT4BJwEKAf8BPQIBAWUcAAFHAgoB8gIKAaQB/wIKAdYB/wIKAdQB/wIKAdIB/wIK
+        AdAB/wIKAc4B/wIKAUUB/wE9AgEBZZgAARQBEAEKAf8BxwGBAQoB/wHDAYEBCgH/AbEBbAEKAf8BsQFs
+        AQoB/wGxAWwBCgH/AbEBbAEKAf8BswFuAQoB/wG2AXIBCgH/AbQBbwEKAf8BWgIFAeQUAAIKARUB/wIK
+        AdwB/wIKAdkB/wIKAcoB/wIKAcoB/wIKAcoB/wIKAcoB/wIKAcsB/wIKAc4B/wIKAcwB/wFaAgUB5JAA
+        AwoB/wHLAYEBCgH/AbsBeAEKAf8BtgFyAQoB/wG2AXIBCgH/Ae4B3AHEBf8BvgGBAScB/wG2AXIBCgH/
+        AbYBcgEKAf8BtgFyAQoB/wG0AW8BCgH/AUkCAgGGDAADCgH/AgoB4AH/AgoB0gH/AgoBzgH/AjcB1gH/
+        AgoBzgH/AgoBzgH/AgoBzgH/Ag0BzgH/AgoBzgH/AgoBzgH/AgoBzAH/AUkCAgGGiAABLAIBAUIB0AGG
+        AQoB/wHHAYEBCgH/AboBdwEKAf8BugF3AQoB/wG6AXcBCgH/AdABnAFbBf8BugF3AQoB/wG6AXcBCgH/
+        AboBdwEKAf8BugF3AQoB/wG2AXIBCgH/AV4BOQEKAf8IAAEsAgEBQgIKAeQB/wIKAdwB/wIKAdIB/wKf
+        Ae0F/wJQAd4B/wIKAdIB/wL0Af0F/wINAdIB/wIKAdIB/wIKAc4B/wIKAWkB/4gAAwoB/wHSAYkBCgH/
+        Ab8BfQEKAf8BvwF9AQoB/wG/AX0BCgH/Ab8BfQEKAf8B0wGfAVsF/wG/AX0BCgH/Ab8BfQEKAf8BvwF9
+        AQoB/wG/AX0BCgH/Ab4BfAEKAf8BtgFyAQoB/wE2AgEBVwQAAwoB/wIKAeUB/wIKAdYB/wIKAdYN/wL1
+        Af0J/wLiAfoB/wIKAdYB/wIKAdUB/wIKAc4B/wE2AgEBV4QAAVIBOgEKAf8B1AGMAQoB/wHEAYEBCgH/
+        AcQBgQEKAf8BxAGBAQoB/wHEAYEBCgH/AdcBpAFcBf8BxAGBAQoB/wHEAYEBCgH/AcQBgQEKAf8BxAGB
+        AQoB/wHEAYEBCgH/AbgBdAEKAf8BUwIHAewEAAIKAVgB/wIKAegB/wIKAdoB/wIKAdoB/wIKAdoR/wLi
+        AfoB/wIKAdoB/wIKAdoB/wIKAdoB/wIKAdAB/wFTAgcB7IQAAXIBTwEKAf8B1wGOAQoB/wHJAYEBCgH/
+        AckBgQEKAf8ByQGBAQoB/wHJAYEBCgn/AckBgQEKAf8ByQGBAQoB/wHJAYEBCgH/AckBgQEKAf8ByQGB
+        AQoB/wG6AXcBCgH/AwoB/wQAAgoBewH/AgoB6QH/AgoB3gH/AgoB3gH/AgoB3gH/AvQB/Q3/AlAB5wH/
+        AgoB3gH/AgoB3gH/AgoB3gH/AgoB0gH/AwoB/4QAAWIBQAEKAf8B2QGRAQoB/wHOAYMBCgH/Ac4BgwEK
+        Af8BzgGDAQoB/wHOAYMBCgH/Ac4BgwEKAf8B1wGcATsB/wHOAYMBCgH/Ac4BgwEKAf8BzgGDAQoB/wHO
+        AYMBCgH/Ac4BgwEKAf8BvQF6AQoB/wEpAgoB+QQAAQoBDwFhAf8CCgHsAf8CCgHiAf8CCgHiAf8C9AH9
+        Ff8CUAHqAf8CCgHiAf8CCgHiAf8CCgHUAf8BKQIKAfmEAAENAQsBCgH/AdsBlAEKAf8B0gGJAQoB/wHS
+        AYkBCgH/AdIBiQEKAf8B0gGJAQoB/wHSAYkBCgH/AesBywGQAf8B0gGJAQoB/wHSAYkBCgH/AdIBiQEK
+        Af8B0gGJAQoB/wHEAYEBCgH/Ab8BfQEKAf8BUQICAZsEAAIKAQ0B/wIKAe0B/wIKAeYB/wIKAeUB/wL9
+        Af4F/wLiAfwB/wIKAeUJ/wJ7AfEB/wIKAeUB/wIKAdoB/wIKAdYB/wFRAgIBm4QAAVgCAgGyAd4BmAEK
+        Af8B2wGUAQoB/wHXAY4BCgH/AdcBjgEKAf8B1wGOAQoB/wH7AfYB6wX/AdcBjgEKAf8B1wGOAQoB/wHX
+        AY4BCgH/AdYBjQEKAf8BxAGBAQoB/wGpAWsBCgH/CAABWAICAbIBCgEUAe8B/wIKAe0B/wIKAekB/wIK
+        AekB/wLhAfwB/wIKAekB/wIKAekB/wIKAekB/wJ7AfMB/wIKAekB/wIKAegB/wIKAdoB/wEKARIBnQH/
+        jAABRAEpAQoB/wHdAZcBCgH/AdsBlAEKAf8B2wGUAQoB/wHbAZQBCgH/AdsBlAEKAf8B3AGXARAB/wHb
+        AZQBCgH/AdsBlAEKAf8B1QGMAQoB/wHJAYEBCgH/AdEBiAEKAf8BHgIKAfwMAAIKAT4B/wIKAe8B/wIK
+        Ae0B/wIKAe0B/wIKAe0B/wIKAe0B/wIKAe0B/wIKAe0B/wIKAe0B/wIKAegB/wIKAd4B/wEKAR0B4gH/
+        AR4CCgH8jAABGQIBASEBkAFeAQoB/wHfAZkBCgH/AdsBlAEKAf8B2QGRAQoB/wHYAZABCgH/AdgBkAEK
+        Af8B0wGKAQoB/wHQAYYBCgH/Ac4BgwEKAf8B2gGSAQoB/wEVARABCgH/EAABGQIBASECCgGHAf8BCgEQ
+        AfEB/wIKAe0B/wIKAewB/wIKAesB/wIKAesB/wIKAeYB/wIKAeQB/wIKAeIB/wEKAScB5gH/AgoBFAH/
+        lAABEgIBARYBLwEhAQoB/wHSAYkBCgH/AeIBnQEKAf8B2QGRAQoB/wHXAY4BCgH/AdUBjAEKAf8B4QGb
+        AQoB/wHOAYQBCgH/ARQCCgH+GAABEgIBARYCCgEuAf8BCgEQAdMB/wEKASEB9AH/AgoB7AH/AgoB6QH/
+        AQoBCwHoAf8BCgEpAfAB/wIKAcwB/wEUAgoB/qAAAUYCAQF9AwoB/wFbAUIBCgH/AXwBWwEKAf8BPAEt
+        AQoB/wEUAgoB/gEUAgEBGiQAAUYCAQF9AwoB/wIKAV4B/wIKAYEB/wIKAT4B/wEUAgoB/gEUAgEBGv8A
         kQABQgFNAT4HAAE+AwABKAMAAUADAAEQAwABAQEAAQEFAAGAFwAD/wEAAfwBHwH8AR8EAAHwAQcB8AEH
         BAAB4AEDAeABAwQAAcABAQHAAQEEAAGAAQEBgAEBBAABgAEAAYAFAAGAAQABgAUAAYABAAGABQABgAEA
@@ -173,3 +173,6 @@
 </value>
   </data>
+  <metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
 </root>
Index: /trunk/sources/HeuristicLab.Hive.Client.Console/HiveEventEntry.cs
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Console/HiveEventEntry.cs	(revision 1001)
+++ /trunk/sources/HeuristicLab.Hive.Client.Console/HiveEventEntry.cs	(revision 1002)
@@ -8,11 +8,9 @@
     public string Message { get; private set; }
     public string EventDate { get; private set; }
-    public string EventTime { get; private set; }
     public string ID { get; private set; }
 
-    public HiveEventEntry(string message, string eventDate, string eventTime, string id) {
+    public HiveEventEntry(string message, string eventDate, string id) {
       Message = message;
       EventDate = eventDate;
-      EventTime = eventTime;
       ID = id;
     }
Index: /trunk/sources/HeuristicLab.Hive.Client.Console/ListViewColumnSorterDate.cs
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Console/ListViewColumnSorterDate.cs	(revision 1002)
+++ /trunk/sources/HeuristicLab.Hive.Client.Console/ListViewColumnSorterDate.cs	(revision 1002)
@@ -0,0 +1,93 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using System.Collections;
+
+
+namespace HeuristicLab.Hive.Client.Console {
+  public class ListViewColumnSorterDate : IComparer {
+
+    /// <summary>
+    /// Specifies the column to be sorted
+    /// </summary>
+    private int ColumnToSort;
+    /// <summary>
+    /// Specifies the order in which to sort (i.e. 'Ascending').
+    /// </summary>
+    private SortOrder OrderOfSort;
+    /// <summary>
+    /// Case insensitive comparer object
+    /// </summary>
+    private CaseInsensitiveComparer ObjectCompare;
+
+    /// <summary>
+    /// Class constructor.  Initializes various elements
+    /// </summary>
+    public ListViewColumnSorterDate() {
+      // Initialize the column to '0'
+      ColumnToSort = 0;
+
+      // Initialize the sort order to 'none'
+      OrderOfSort = SortOrder.None;
+
+      // Initialize the CaseInsensitiveComparer object
+      ObjectCompare = new CaseInsensitiveComparer();
+    }
+
+    /// <summary>
+    /// This method is inherited from the IComparer interface.  It compares the two objects passed using a case insensitive comparison.
+    /// </summary>
+    /// <param name="x">First object to be compared</param>
+    /// <param name="y">Second object to be compared</param>
+    /// <returns>The result of the comparison. "0" if equal, negative if 'x' is less than 'y' and positive if 'x' is greater than 'y'</returns>
+    public int Compare(object x, object y) {
+      int compareResult;
+      ListViewItem listviewX, listviewY;
+
+      // Cast the objects to be compared to ListViewItem objects
+      listviewX = (ListViewItem)x;
+      listviewY = (ListViewItem)y;
+
+      // Compare the two items
+      compareResult = ObjectCompare.Compare(listviewX.SubItems[ColumnToSort].Text, listviewY.SubItems[ColumnToSort].Text);
+
+      // Calculate correct return value based on object comparison
+      if (OrderOfSort == SortOrder.Ascending) {
+        // Ascending sort is selected, return normal result of compare operation
+        return compareResult;
+      } else if (OrderOfSort == SortOrder.Descending) {
+        // Descending sort is selected, return negative result of compare operation
+        return (-compareResult);
+      } else {
+        // Return '0' to indicate they are equal
+        return 0;
+      }
+    }
+
+    /// <summary>
+    /// Gets or sets the number of the column to which to apply the sorting operation (Defaults to '0').
+    /// </summary>
+    public int SortColumn {
+      set {
+        ColumnToSort = value;
+      }
+      get {
+        return ColumnToSort;
+      }
+    }
+
+    /// <summary>
+    /// Gets or sets the order of sorting to apply (for example, 'Ascending' or 'Descending').
+    /// </summary>
+    public SortOrder Order {
+      set {
+        OrderOfSort = value;
+      }
+      get {
+        return OrderOfSort;
+      }
+    }
+  }
+}
Index: /trunk/sources/HeuristicLab.Hive.Client.Console/Service References/ClientService/Reference.cs
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Console/Service References/ClientService/Reference.cs	(revision 1001)
+++ /trunk/sources/HeuristicLab.Hive.Client.Console/Service References/ClientService/Reference.cs	(revision 1002)
@@ -317,19 +317,101 @@
         HeuristicLab.Hive.Client.Console.ClientService.StatusCommons GetStatusInfos();
         
+        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/IClientConsoleCommunicator/GetStatusInfos", ReplyAction="http://tempuri.org/IClientConsoleCommunicator/GetStatusInfosResponse")]
+        System.IAsyncResult BeginGetStatusInfos(System.AsyncCallback callback, object asyncState);
+        
+        HeuristicLab.Hive.Client.Console.ClientService.StatusCommons EndGetStatusInfos(System.IAsyncResult result);
+        
         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IClientConsoleCommunicator/GetConnection", ReplyAction="http://tempuri.org/IClientConsoleCommunicator/GetConnectionResponse")]
         HeuristicLab.Hive.Client.Console.ClientService.ConnectionContainer GetConnection();
         
+        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/IClientConsoleCommunicator/GetConnection", ReplyAction="http://tempuri.org/IClientConsoleCommunicator/GetConnectionResponse")]
+        System.IAsyncResult BeginGetConnection(System.AsyncCallback callback, object asyncState);
+        
+        HeuristicLab.Hive.Client.Console.ClientService.ConnectionContainer EndGetConnection(System.IAsyncResult result);
+        
         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IClientConsoleCommunicator/SetConnection", ReplyAction="http://tempuri.org/IClientConsoleCommunicator/SetConnectionResponse")]
         void SetConnection(HeuristicLab.Hive.Client.Console.ClientService.ConnectionContainer container);
         
+        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/IClientConsoleCommunicator/SetConnection", ReplyAction="http://tempuri.org/IClientConsoleCommunicator/SetConnectionResponse")]
+        System.IAsyncResult BeginSetConnection(HeuristicLab.Hive.Client.Console.ClientService.ConnectionContainer container, System.AsyncCallback callback, object asyncState);
+        
+        void EndSetConnection(System.IAsyncResult result);
+        
         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IClientConsoleCommunicator/Disconnect", ReplyAction="http://tempuri.org/IClientConsoleCommunicator/DisconnectResponse")]
         void Disconnect();
         
+        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/IClientConsoleCommunicator/Disconnect", ReplyAction="http://tempuri.org/IClientConsoleCommunicator/DisconnectResponse")]
+        System.IAsyncResult BeginDisconnect(System.AsyncCallback callback, object asyncState);
+        
+        void EndDisconnect(System.IAsyncResult result);
+        
         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IClientConsoleCommunicator/GetCurrentConnection", ReplyAction="http://tempuri.org/IClientConsoleCommunicator/GetCurrentConnectionResponse")]
         HeuristicLab.Hive.Client.Console.ClientService.ConnectionContainer GetCurrentConnection();
+        
+        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/IClientConsoleCommunicator/GetCurrentConnection", ReplyAction="http://tempuri.org/IClientConsoleCommunicator/GetCurrentConnectionResponse")]
+        System.IAsyncResult BeginGetCurrentConnection(System.AsyncCallback callback, object asyncState);
+        
+        HeuristicLab.Hive.Client.Console.ClientService.ConnectionContainer EndGetCurrentConnection(System.IAsyncResult result);
     }
     
     [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
     public interface IClientConsoleCommunicatorChannel : HeuristicLab.Hive.Client.Console.ClientService.IClientConsoleCommunicator, System.ServiceModel.IClientChannel {
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
+    public partial class GetStatusInfosCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+        
+        private object[] results;
+        
+        public GetStatusInfosCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+                base(exception, cancelled, userState) {
+            this.results = results;
+        }
+        
+        public HeuristicLab.Hive.Client.Console.ClientService.StatusCommons Result {
+            get {
+                base.RaiseExceptionIfNecessary();
+                return ((HeuristicLab.Hive.Client.Console.ClientService.StatusCommons)(this.results[0]));
+            }
+        }
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
+    public partial class GetConnectionCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+        
+        private object[] results;
+        
+        public GetConnectionCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+                base(exception, cancelled, userState) {
+            this.results = results;
+        }
+        
+        public HeuristicLab.Hive.Client.Console.ClientService.ConnectionContainer Result {
+            get {
+                base.RaiseExceptionIfNecessary();
+                return ((HeuristicLab.Hive.Client.Console.ClientService.ConnectionContainer)(this.results[0]));
+            }
+        }
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
+    public partial class GetCurrentConnectionCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+        
+        private object[] results;
+        
+        public GetCurrentConnectionCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+                base(exception, cancelled, userState) {
+            this.results = results;
+        }
+        
+        public HeuristicLab.Hive.Client.Console.ClientService.ConnectionContainer Result {
+            get {
+                base.RaiseExceptionIfNecessary();
+                return ((HeuristicLab.Hive.Client.Console.ClientService.ConnectionContainer)(this.results[0]));
+            }
+        }
     }
     
@@ -338,4 +420,34 @@
     public partial class ClientConsoleCommunicatorClient : System.ServiceModel.ClientBase<HeuristicLab.Hive.Client.Console.ClientService.IClientConsoleCommunicator>, HeuristicLab.Hive.Client.Console.ClientService.IClientConsoleCommunicator {
         
+        private BeginOperationDelegate onBeginGetStatusInfosDelegate;
+        
+        private EndOperationDelegate onEndGetStatusInfosDelegate;
+        
+        private System.Threading.SendOrPostCallback onGetStatusInfosCompletedDelegate;
+        
+        private BeginOperationDelegate onBeginGetConnectionDelegate;
+        
+        private EndOperationDelegate onEndGetConnectionDelegate;
+        
+        private System.Threading.SendOrPostCallback onGetConnectionCompletedDelegate;
+        
+        private BeginOperationDelegate onBeginSetConnectionDelegate;
+        
+        private EndOperationDelegate onEndSetConnectionDelegate;
+        
+        private System.Threading.SendOrPostCallback onSetConnectionCompletedDelegate;
+        
+        private BeginOperationDelegate onBeginDisconnectDelegate;
+        
+        private EndOperationDelegate onEndDisconnectDelegate;
+        
+        private System.Threading.SendOrPostCallback onDisconnectCompletedDelegate;
+        
+        private BeginOperationDelegate onBeginGetCurrentConnectionDelegate;
+        
+        private EndOperationDelegate onEndGetCurrentConnectionDelegate;
+        
+        private System.Threading.SendOrPostCallback onGetCurrentConnectionCompletedDelegate;
+        
         public ClientConsoleCommunicatorClient() {
         }
@@ -357,23 +469,253 @@
         }
         
+        public event System.EventHandler<GetStatusInfosCompletedEventArgs> GetStatusInfosCompleted;
+        
+        public event System.EventHandler<GetConnectionCompletedEventArgs> GetConnectionCompleted;
+        
+        public event System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs> SetConnectionCompleted;
+        
+        public event System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs> DisconnectCompleted;
+        
+        public event System.EventHandler<GetCurrentConnectionCompletedEventArgs> GetCurrentConnectionCompleted;
+        
         public HeuristicLab.Hive.Client.Console.ClientService.StatusCommons GetStatusInfos() {
             return base.Channel.GetStatusInfos();
         }
         
+        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+        public System.IAsyncResult BeginGetStatusInfos(System.AsyncCallback callback, object asyncState) {
+            return base.Channel.BeginGetStatusInfos(callback, asyncState);
+        }
+        
+        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+        public HeuristicLab.Hive.Client.Console.ClientService.StatusCommons EndGetStatusInfos(System.IAsyncResult result) {
+            return base.Channel.EndGetStatusInfos(result);
+        }
+        
+        private System.IAsyncResult OnBeginGetStatusInfos(object[] inValues, System.AsyncCallback callback, object asyncState) {
+            return this.BeginGetStatusInfos(callback, asyncState);
+        }
+        
+        private object[] OnEndGetStatusInfos(System.IAsyncResult result) {
+            HeuristicLab.Hive.Client.Console.ClientService.StatusCommons retVal = this.EndGetStatusInfos(result);
+            return new object[] {
+                    retVal};
+        }
+        
+        private void OnGetStatusInfosCompleted(object state) {
+            if ((this.GetStatusInfosCompleted != null)) {
+                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
+                this.GetStatusInfosCompleted(this, new GetStatusInfosCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
+            }
+        }
+        
+        public void GetStatusInfosAsync() {
+            this.GetStatusInfosAsync(null);
+        }
+        
+        public void GetStatusInfosAsync(object userState) {
+            if ((this.onBeginGetStatusInfosDelegate == null)) {
+                this.onBeginGetStatusInfosDelegate = new BeginOperationDelegate(this.OnBeginGetStatusInfos);
+            }
+            if ((this.onEndGetStatusInfosDelegate == null)) {
+                this.onEndGetStatusInfosDelegate = new EndOperationDelegate(this.OnEndGetStatusInfos);
+            }
+            if ((this.onGetStatusInfosCompletedDelegate == null)) {
+                this.onGetStatusInfosCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetStatusInfosCompleted);
+            }
+            base.InvokeAsync(this.onBeginGetStatusInfosDelegate, null, this.onEndGetStatusInfosDelegate, this.onGetStatusInfosCompletedDelegate, userState);
+        }
+        
         public HeuristicLab.Hive.Client.Console.ClientService.ConnectionContainer GetConnection() {
             return base.Channel.GetConnection();
         }
         
+        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+        public System.IAsyncResult BeginGetConnection(System.AsyncCallback callback, object asyncState) {
+            return base.Channel.BeginGetConnection(callback, asyncState);
+        }
+        
+        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+        public HeuristicLab.Hive.Client.Console.ClientService.ConnectionContainer EndGetConnection(System.IAsyncResult result) {
+            return base.Channel.EndGetConnection(result);
+        }
+        
+        private System.IAsyncResult OnBeginGetConnection(object[] inValues, System.AsyncCallback callback, object asyncState) {
+            return this.BeginGetConnection(callback, asyncState);
+        }
+        
+        private object[] OnEndGetConnection(System.IAsyncResult result) {
+            HeuristicLab.Hive.Client.Console.ClientService.ConnectionContainer retVal = this.EndGetConnection(result);
+            return new object[] {
+                    retVal};
+        }
+        
+        private void OnGetConnectionCompleted(object state) {
+            if ((this.GetConnectionCompleted != null)) {
+                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
+                this.GetConnectionCompleted(this, new GetConnectionCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
+            }
+        }
+        
+        public void GetConnectionAsync() {
+            this.GetConnectionAsync(null);
+        }
+        
+        public void GetConnectionAsync(object userState) {
+            if ((this.onBeginGetConnectionDelegate == null)) {
+                this.onBeginGetConnectionDelegate = new BeginOperationDelegate(this.OnBeginGetConnection);
+            }
+            if ((this.onEndGetConnectionDelegate == null)) {
+                this.onEndGetConnectionDelegate = new EndOperationDelegate(this.OnEndGetConnection);
+            }
+            if ((this.onGetConnectionCompletedDelegate == null)) {
+                this.onGetConnectionCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetConnectionCompleted);
+            }
+            base.InvokeAsync(this.onBeginGetConnectionDelegate, null, this.onEndGetConnectionDelegate, this.onGetConnectionCompletedDelegate, userState);
+        }
+        
         public void SetConnection(HeuristicLab.Hive.Client.Console.ClientService.ConnectionContainer container) {
             base.Channel.SetConnection(container);
         }
         
+        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+        public System.IAsyncResult BeginSetConnection(HeuristicLab.Hive.Client.Console.ClientService.ConnectionContainer container, System.AsyncCallback callback, object asyncState) {
+            return base.Channel.BeginSetConnection(container, callback, asyncState);
+        }
+        
+        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+        public void EndSetConnection(System.IAsyncResult result) {
+            base.Channel.EndSetConnection(result);
+        }
+        
+        private System.IAsyncResult OnBeginSetConnection(object[] inValues, System.AsyncCallback callback, object asyncState) {
+            HeuristicLab.Hive.Client.Console.ClientService.ConnectionContainer container = ((HeuristicLab.Hive.Client.Console.ClientService.ConnectionContainer)(inValues[0]));
+            return this.BeginSetConnection(container, callback, asyncState);
+        }
+        
+        private object[] OnEndSetConnection(System.IAsyncResult result) {
+            this.EndSetConnection(result);
+            return null;
+        }
+        
+        private void OnSetConnectionCompleted(object state) {
+            if ((this.SetConnectionCompleted != null)) {
+                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
+                this.SetConnectionCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
+            }
+        }
+        
+        public void SetConnectionAsync(HeuristicLab.Hive.Client.Console.ClientService.ConnectionContainer container) {
+            this.SetConnectionAsync(container, null);
+        }
+        
+        public void SetConnectionAsync(HeuristicLab.Hive.Client.Console.ClientService.ConnectionContainer container, object userState) {
+            if ((this.onBeginSetConnectionDelegate == null)) {
+                this.onBeginSetConnectionDelegate = new BeginOperationDelegate(this.OnBeginSetConnection);
+            }
+            if ((this.onEndSetConnectionDelegate == null)) {
+                this.onEndSetConnectionDelegate = new EndOperationDelegate(this.OnEndSetConnection);
+            }
+            if ((this.onSetConnectionCompletedDelegate == null)) {
+                this.onSetConnectionCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnSetConnectionCompleted);
+            }
+            base.InvokeAsync(this.onBeginSetConnectionDelegate, new object[] {
+                        container}, this.onEndSetConnectionDelegate, this.onSetConnectionCompletedDelegate, userState);
+        }
+        
         public void Disconnect() {
             base.Channel.Disconnect();
         }
         
+        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+        public System.IAsyncResult BeginDisconnect(System.AsyncCallback callback, object asyncState) {
+            return base.Channel.BeginDisconnect(callback, asyncState);
+        }
+        
+        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+        public void EndDisconnect(System.IAsyncResult result) {
+            base.Channel.EndDisconnect(result);
+        }
+        
+        private System.IAsyncResult OnBeginDisconnect(object[] inValues, System.AsyncCallback callback, object asyncState) {
+            return this.BeginDisconnect(callback, asyncState);
+        }
+        
+        private object[] OnEndDisconnect(System.IAsyncResult result) {
+            this.EndDisconnect(result);
+            return null;
+        }
+        
+        private void OnDisconnectCompleted(object state) {
+            if ((this.DisconnectCompleted != null)) {
+                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
+                this.DisconnectCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
+            }
+        }
+        
+        public void DisconnectAsync() {
+            this.DisconnectAsync(null);
+        }
+        
+        public void DisconnectAsync(object userState) {
+            if ((this.onBeginDisconnectDelegate == null)) {
+                this.onBeginDisconnectDelegate = new BeginOperationDelegate(this.OnBeginDisconnect);
+            }
+            if ((this.onEndDisconnectDelegate == null)) {
+                this.onEndDisconnectDelegate = new EndOperationDelegate(this.OnEndDisconnect);
+            }
+            if ((this.onDisconnectCompletedDelegate == null)) {
+                this.onDisconnectCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnDisconnectCompleted);
+            }
+            base.InvokeAsync(this.onBeginDisconnectDelegate, null, this.onEndDisconnectDelegate, this.onDisconnectCompletedDelegate, userState);
+        }
+        
         public HeuristicLab.Hive.Client.Console.ClientService.ConnectionContainer GetCurrentConnection() {
             return base.Channel.GetCurrentConnection();
         }
+        
+        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+        public System.IAsyncResult BeginGetCurrentConnection(System.AsyncCallback callback, object asyncState) {
+            return base.Channel.BeginGetCurrentConnection(callback, asyncState);
+        }
+        
+        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+        public HeuristicLab.Hive.Client.Console.ClientService.ConnectionContainer EndGetCurrentConnection(System.IAsyncResult result) {
+            return base.Channel.EndGetCurrentConnection(result);
+        }
+        
+        private System.IAsyncResult OnBeginGetCurrentConnection(object[] inValues, System.AsyncCallback callback, object asyncState) {
+            return this.BeginGetCurrentConnection(callback, asyncState);
+        }
+        
+        private object[] OnEndGetCurrentConnection(System.IAsyncResult result) {
+            HeuristicLab.Hive.Client.Console.ClientService.ConnectionContainer retVal = this.EndGetCurrentConnection(result);
+            return new object[] {
+                    retVal};
+        }
+        
+        private void OnGetCurrentConnectionCompleted(object state) {
+            if ((this.GetCurrentConnectionCompleted != null)) {
+                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
+                this.GetCurrentConnectionCompleted(this, new GetCurrentConnectionCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
+            }
+        }
+        
+        public void GetCurrentConnectionAsync() {
+            this.GetCurrentConnectionAsync(null);
+        }
+        
+        public void GetCurrentConnectionAsync(object userState) {
+            if ((this.onBeginGetCurrentConnectionDelegate == null)) {
+                this.onBeginGetCurrentConnectionDelegate = new BeginOperationDelegate(this.OnBeginGetCurrentConnection);
+            }
+            if ((this.onEndGetCurrentConnectionDelegate == null)) {
+                this.onEndGetCurrentConnectionDelegate = new EndOperationDelegate(this.OnEndGetCurrentConnection);
+            }
+            if ((this.onGetCurrentConnectionCompletedDelegate == null)) {
+                this.onGetCurrentConnectionCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetCurrentConnectionCompleted);
+            }
+            base.InvokeAsync(this.onBeginGetCurrentConnectionDelegate, null, this.onEndGetCurrentConnectionDelegate, this.onGetCurrentConnectionCompletedDelegate, userState);
+        }
     }
 }
Index: /trunk/sources/HeuristicLab.Hive.Client.Console/Service References/ClientService/Reference.svcmap
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Console/Service References/ClientService/Reference.svcmap	(revision 1001)
+++ /trunk/sources/HeuristicLab.Hive.Client.Console/Service References/ClientService/Reference.svcmap	(revision 1002)
@@ -2,5 +2,5 @@
 <ReferenceGroup xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ID="94ae11a7-d639-4d8a-b9e6-a027596236fd" xmlns="urn:schemas-microsoft-com:xml-wcfservicemap">
   <ClientOptions>
-    <GenerateAsynchronousMethods>false</GenerateAsynchronousMethods>
+    <GenerateAsynchronousMethods>true</GenerateAsynchronousMethods>
     <EnableDataBinding>true</EnableDataBinding>
     <ExcludedTypes />
