Index: trunk/sources/HeuristicLab.Hive.Client.Communication/ServiceLocator.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Client.Communication/ServiceLocator.cs	(revision 804)
+++ trunk/sources/HeuristicLab.Hive.Client.Communication/ServiceLocator.cs	(revision 805)
@@ -13,5 +13,5 @@
         proxy = new ClientCommunicatorClient(
           new NetTcpBinding(),
-          new EndpointAddress("net.tcp://10.20.53.1:9000/HiveServer/ClientCommunicator")
+          new EndpointAddress("net.tcp://192.168.132.1:9000/HiveServer/ClientCommunicator")
           );
       }
Index: trunk/sources/HeuristicLab.Hive.Client.Core/Core.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Client.Core/Core.cs	(revision 804)
+++ trunk/sources/HeuristicLab.Hive.Client.Core/Core.cs	(revision 805)
@@ -67,5 +67,5 @@
 
     public void Start() {
-      Heartbeat beat = new Heartbeat { Interval = 5000 };
+      Heartbeat beat = new Heartbeat { Interval = 30000 };
       beat.StartHeartbeat();
 
Index: trunk/sources/HeuristicLab.Hive.Server.Core/ClientCommunicator.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Server.Core/ClientCommunicator.cs	(revision 804)
+++ trunk/sources/HeuristicLab.Hive.Server.Core/ClientCommunicator.cs	(revision 805)
@@ -13,11 +13,11 @@
   public class ClientCommunicator: IClientCommunicator {
     List<ClientInfo> clients;
-    List<long> jobs;
+    LinkedList<long> jobs;
     int nrOfJobs = 10;
 
     public ClientCommunicator() {
-      jobs = new List<long>();
-      for (int i = 1; i < nrOfJobs; i++) {
-        jobs.Add(i);
+      jobs = new LinkedList<long>();
+      for (long i = 1; i < nrOfJobs; i++) {
+        jobs.AddFirst(i);
       }
     }
@@ -54,10 +54,11 @@
     public ResponseJob PullJob(Guid clientId) {
       ResponseJob response = new ResponseJob();
-
-      response.JobId = jobs.ElementAt(jobs.Count);
+      lock (this) {
+        response.JobId = jobs.Last.Value;
+        jobs.RemoveLast(); 
+      }
+      
       response.Success = true;
-      response.StatusMessage = "Job with id " + jobs.Count + " sent";
-      jobs.Remove(jobs.Count);
-
+      response.StatusMessage = "Job with id " + jobs.Count + " sent";     
       return response;
     }
@@ -70,5 +71,5 @@
       return response;
     }
-
+                           
     public Response Logout(Guid clientId) {
       bool clientRemoved = false;
Index: trunk/sources/HeuristicLab.Hive.Server/HiveServerApplication.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Server/HiveServerApplication.cs	(revision 804)
+++ trunk/sources/HeuristicLab.Hive.Server/HiveServerApplication.cs	(revision 805)
@@ -36,5 +36,5 @@
       AutoRestart = true)]
   class HiveServerApplication : ApplicationBase {
-    const int port = 
+    const int port =
       9000;
 
@@ -43,13 +43,13 @@
 
     private bool AddMexEndpoint(ServiceHost serviceHost) {
-      if(serviceHost != null) {
+      if (serviceHost != null) {
         ServiceMetadataBehavior behavior =
             new ServiceMetadataBehavior();
-          serviceHost.Description.Behaviors.Add(behavior);
+        serviceHost.Description.Behaviors.Add(behavior);
 
-          return serviceHost.AddServiceEndpoint(
-            typeof(IMetadataExchange),
-            MetadataExchangeBindings.CreateMexTcpBinding(),
-            "mex") != null;
+        return serviceHost.AddServiceEndpoint(
+          typeof(IMetadataExchange),
+          MetadataExchangeBindings.CreateMexTcpBinding(),
+          "mex") != null;
       } else
         return false;
@@ -119,16 +119,16 @@
 
     public override void Run() {
-        IPAddress[] addresses = Dns.GetHostAddresses(Dns.GetHostName());
- 	      int index = 0;
- 	      if (System.Environment.OSVersion.Version.Major >= 6) {
- 	        for (index = addresses.Length - 1; index >= 0; index--)
- 	          if (addresses[index].AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
- 	            break;
- 	      }
+      IPAddress[] addresses = Dns.GetHostAddresses(Dns.GetHostName());
+      int index = 0;
+      if (System.Environment.OSVersion.Version.Major >= 6) {
+        for (index = addresses.Length - 1; index >= 0; index--)
+          if (addresses[index].AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
+            break;
+      }
 
       Uri uriTcp =
           new Uri("net.tcp://" + addresses[index] + ":" + port + "/HiveServer/");
 
-      ServiceHost clientCommunicator = 
+      ServiceHost clientCommunicator =
         StartClientCommunicator(uriTcp);
 
