Index: trunk/sources/HeuristicLab.Hive.Client.Core/ConfigurationManager/ConfigManager.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Client.Core/ConfigurationManager/ConfigManager.cs	(revision 1118)
+++ trunk/sources/HeuristicLab.Hive.Client.Core/ConfigurationManager/ConfigManager.cs	(revision 1119)
@@ -106,4 +106,15 @@
       return st;      
     }
+
+    public Dictionary<long, double> GetProgressOfAllJobs() {
+      Dictionary<long,double> prog = new Dictionary<long,double>();
+      Dictionary<long, Executor> engines = Core.GetExecutionEngines();
+      foreach (KeyValuePair<long, Executor> kvp in engines) {
+        Executor e = kvp.Value;
+        prog[e.JobId] = e.Progress;
+      }
+      return prog;
+    }
+
   }
 }
Index: trunk/sources/HeuristicLab.Hive.Client.Core/Core.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Client.Core/Core.cs	(revision 1118)
+++ trunk/sources/HeuristicLab.Hive.Client.Core/Core.cs	(revision 1119)
@@ -162,5 +162,5 @@
         AppDomain appDomain = PluginManager.Manager.CreateAndInitAppDomainWithSandbox(e.Result.Job.Id.ToString(), sandboxed, typeof(TestJob));
         appDomain.UnhandledException += new UnhandledExceptionEventHandler(appDomain_UnhandledException);
-        lock (Locker) {
+        lock (Locker) {                    
           if (!jobs.ContainsKey(e.Result.Job.Id)) {
             jobs.Add(e.Result.Job.Id, e.Result.Job);
Index: trunk/sources/HeuristicLab.Hive.Client.Core/Heartbeat.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Client.Core/Heartbeat.cs	(revision 1118)
+++ trunk/sources/HeuristicLab.Hive.Client.Core/Heartbeat.cs	(revision 1119)
@@ -74,9 +74,11 @@
       ClientInfo info = ConfigManager.Instance.GetClientInfo();
       // Todo: remove tempfix for free cores.
-      // TODO: change jobProgress from int to Dictionary of Job and Double
-      HeartBeatData heartBeatData = new HeartBeatData { ClientId = info.ClientId, 
-                                                              freeCores = info.NrOfCores - (ClientStatusInfo.JobsFetched - ClientStatusInfo.JobsProcessed), 
-                                                              freeMemory = 1000, 
-                                                              jobProgress = ClientStatusInfo.JobsFetched - ClientStatusInfo.JobsProcessed};
+
+      HeartBeatData heartBeatData = new HeartBeatData {
+        ClientId = info.ClientId,
+        freeCores = info.NrOfCores - (ClientStatusInfo.JobsFetched - ClientStatusInfo.JobsProcessed),
+        freeMemory = 1000,
+        jobProgress = ConfigManager.Instance.GetProgressOfAllJobs()
+      };
       if (wcfService.ConnState == NetworkEnum.WcfConnState.Failed) {
         wcfService.Connect();
Index: trunk/sources/HeuristicLab.Hive.Client.ExecutionEngine/Executor.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Client.ExecutionEngine/Executor.cs	(revision 1118)
+++ trunk/sources/HeuristicLab.Hive.Client.ExecutionEngine/Executor.cs	(revision 1119)
@@ -53,5 +53,7 @@
     public void Start(byte[] serializedJob) {
       CreationTime = DateTime.Now;
-      Job = (IJob)PersistenceManager.RestoreFromGZip(serializedJob);
+      //Job = (IJob)PersistenceManager.RestoreFromGZip(serializedJob);
+      //debug
+      Job = new TestJob();
       Job.JobStopped += new EventHandler(Job_JobStopped);
       Job.Start();
Index: trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/HeartBeatData.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/HeartBeatData.cs	(revision 1118)
+++ trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/HeartBeatData.cs	(revision 1119)
@@ -16,5 +16,5 @@
     public int freeCores { get; set; }
     [DataMember]
-    public int jobProgress { get; set; } // TODO: define Type 
+    public Dictionary<long, double> jobProgress { get; set; } // TODO: define Type 
   }
 }
Index: trunk/sources/HeuristicLab.Hive.JobBase/TestJob.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.JobBase/TestJob.cs	(revision 1118)
+++ trunk/sources/HeuristicLab.Hive.JobBase/TestJob.cs	(revision 1119)
@@ -67,4 +67,7 @@
     }
 
+    public TestJob() {
+    }
+
 
   }
