Index: trunk/sources/HeuristicLab.Hive.Client.Core/Core.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Client.Core/Core.cs	(revision 1353)
+++ trunk/sources/HeuristicLab.Hive.Client.Core/Core.cs	(revision 1364)
@@ -43,5 +43,5 @@
 using HeuristicLab.Hive.Client.Communication.ServerService;
 using HeuristicLab.Hive.JobBase;
-using HeuristicLab.Hive.Client.Core.JobStorrage;
+using HeuristicLab.Hive.Client.Core.JobStorage;
 
 
@@ -168,5 +168,5 @@
       } else {
         //Todo: locking
-        JobStorrageManager.PersistObjectToDisc(wcfService.ServerIP, wcfService.ServerPort, jId, sJob);
+        JobStorageManager.PersistObjectToDisc(wcfService.ServerIP, wcfService.ServerPort, jId, sJob);
         AppDomain.Unload(appDomains[jId]);
         appDomains.Remove(jId);
@@ -263,5 +263,5 @@
     void wcfService_Connected(object sender, EventArgs e) {
       wcfService.LoginSync(ConfigManager.Instance.GetClientInfo());
-      JobStorrageManager.CheckAndSubmitJobsFromDisc();
+      JobStorageManager.CheckAndSubmitJobsFromDisc();
     }
 
Index: trunk/sources/HeuristicLab.Hive.Client.Core/HeuristicLab.Hive.Client.Core.csproj
===================================================================
--- trunk/sources/HeuristicLab.Hive.Client.Core/HeuristicLab.Hive.Client.Core.csproj	(revision 1353)
+++ trunk/sources/HeuristicLab.Hive.Client.Core/HeuristicLab.Hive.Client.Core.csproj	(revision 1364)
@@ -4,5 +4,5 @@
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
     <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>9.0.21022</ProductVersion>
+    <ProductVersion>9.0.30729</ProductVersion>
     <SchemaVersion>2.0</SchemaVersion>
     <ProjectGuid>{5010BD86-23B7-4F8C-888A-76D21AD5266A}</ProjectGuid>
@@ -82,6 +82,6 @@
     <Compile Include="CorePlugin.cs" />
     <Compile Include="Heartbeat.cs" />
-    <Compile Include="JobStorrage\JobStorrageInfo.cs" />
-    <Compile Include="JobStorrage\JobStorrageManager.cs" />
+    <Compile Include="JobStorage\JobStorageInfo.cs" />
+    <Compile Include="JobStorage\JobStorageManager.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="Properties\Settings.Designer.cs">
Index: trunk/sources/HeuristicLab.Hive.Client.Core/JobStorage/JobStorageInfo.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Client.Core/JobStorage/JobStorageInfo.cs	(revision 1364)
+++ trunk/sources/HeuristicLab.Hive.Client.Core/JobStorage/JobStorageInfo.cs	(revision 1364)
@@ -0,0 +1,13 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace HeuristicLab.Hive.Client.Core.JobStorage {
+  public class JobStorageInfo {
+    public String ServerIP { get; set; }
+    public long ServerPort { get; set; }
+    public DateTime TimeFinished { get; set; }
+    public long JobID { get; set; }
+  }
+}
Index: trunk/sources/HeuristicLab.Hive.Client.Core/JobStorage/JobStorageManager.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Client.Core/JobStorage/JobStorageManager.cs	(revision 1364)
+++ trunk/sources/HeuristicLab.Hive.Client.Core/JobStorage/JobStorageManager.cs	(revision 1364)
@@ -0,0 +1,58 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.IO;
+using HeuristicLab.Hive.Client.Common;
+using HeuristicLab.Hive.Client.Communication;
+using HeuristicLab.Hive.Client.Core.ConfigurationManager;
+using HeuristicLab.Hive.Contracts;
+
+namespace HeuristicLab.Hive.Client.Core.JobStorage {
+  public class JobStorageManager {
+    
+    private static List<JobStorageInfo> storedJobsList = new List<JobStorageInfo>();
+    //Todo: execution path
+    //Todo: Choose a better directory name 
+    private static String path = "C:\\Program Files\\HeuristicLab 3.0\\plugins\\jobStorrage\\";
+    
+    public static void PersistObjectToDisc(String serverIP, long serverPort, long jobId, byte[] job) {
+      String filename = serverIP + "." + serverPort + "." + jobId.ToString();
+
+      JobStorageInfo info = new JobStorageInfo { JobID = jobId, ServerIP = serverIP, ServerPort = serverPort, TimeFinished = DateTime.Now };
+      
+      //Todo: Filestream won't be closed if exception occurs
+      try {
+        Stream jobstream = File.Create(path + filename + ".dat");
+        jobstream.Write(job, 0, job.Length);
+        storedJobsList.Add(info);
+        jobstream.Close();
+        Logging.GetInstance().Info("JobStorrageManager", "Job " + info.JobID + " stored on the harddisc");
+      }
+      catch (Exception e) {
+        //Todo: Change to logging.exception!
+        Console.WriteLine(e);
+      }       
+    }
+
+    public static void CheckAndSubmitJobsFromDisc() {
+      for(int index=storedJobsList.Count; index > 0; index--) {
+        if (WcfService.Instance.ConnState == NetworkEnum.WcfConnState.Loggedin && (storedJobsList[index-1].ServerIP == WcfService.Instance.ServerIP && storedJobsList[index-1].ServerPort == WcfService.Instance.ServerPort)) {
+          String filename = storedJobsList[index-1].ServerIP + "." + storedJobsList[index-1].ServerPort + "." + storedJobsList[index-1].JobID.ToString();
+          Logging.GetInstance().Info("JobStorrageManager", "Sending stored job " + storedJobsList[index-1].JobID + " to the server");
+          byte[] job = File.ReadAllBytes(path + filename + ".dat");
+          
+          //Todo: ask server first if he really wants the job...
+          ResponseResultReceived res = WcfService.Instance.SendStoredJobResultsSync(ConfigManager.Instance.GetClientInfo().ClientId, storedJobsList[index-1].JobID, job, 1.00, null, true);
+          //TODO: has to be fixed from server side
+          //if (res.Success == true) {
+          Logging.GetInstance().Info("JobStorrageManager", "Sending of job " + storedJobsList[index - 1].JobID + " done");  
+          storedJobsList.Remove(storedJobsList[index - 1]);
+          File.Delete(path + filename + ".dat");
+            
+       //   }
+        }
+      }
+    }
+  }
+}
