Index: /branches/EnhancedProgress/HeuristicLab.Analysis.Statistics.Views/3.3/ChartAnalysisView.cs
===================================================================
--- /branches/EnhancedProgress/HeuristicLab.Analysis.Statistics.Views/3.3/ChartAnalysisView.cs	(revision 15445)
+++ /branches/EnhancedProgress/HeuristicLab.Analysis.Statistics.Views/3.3/ChartAnalysisView.cs	(revision 15446)
@@ -273,5 +273,5 @@
       var task = Task.Factory.StartNew(() => {
         sem.Wait();
-        progress = MainFormManager.GetMainForm<MainForm.WindowsForms.MainForm>().AddOperationProgressToView(this, "Calculating values...");
+        progress = MainFormManager.GetMainForm<MainForm.WindowsForms.MainForm>().AddOperationProgressToView(this, "Calculating values...", 0);
         RebuildDataTable(resultName, rowName);
       });
Index: /branches/EnhancedProgress/HeuristicLab.Clients.Hive/3.3/HiveClient.cs
===================================================================
--- /branches/EnhancedProgress/HeuristicLab.Clients.Hive/3.3/HiveClient.cs	(revision 15445)
+++ /branches/EnhancedProgress/HeuristicLab.Clients.Hive/3.3/HiveClient.cs	(revision 15446)
@@ -284,5 +284,7 @@
         // upload tasks
         refreshableJob.Progress.Message = "Uploading tasks...";
-
+        refreshableJob.Progress.ProgressBarMode = ProgressBarMode.Continuous;
+        refreshableJob.Progress.ProgressValue = 0;
+        
         var tasks = new List<TS.Task>();
         foreach (HiveTask hiveTask in refreshableJob.HiveTasks) {
@@ -417,4 +419,6 @@
 
         refreshableJob.Progress.Message = "Downloading tasks...";
+        refreshableJob.Progress.ProgressBarMode = ProgressBarMode.Continuous;
+        refreshableJob.Progress.ProgressValue = 0.0;
         downloader = new TaskDownloader(allTasks.Select(x => x.Id));
         downloader.StartAsync();
@@ -433,4 +437,6 @@
 
         refreshableJob.Progress.Message = "Downloading/deserializing complete. Displaying tasks...";
+        refreshableJob.Progress.ProgressBarMode = ProgressBarMode.Marquee;
+
         // build child-task tree
         foreach (HiveTask hiveTask in parents) {
Index: /branches/EnhancedProgress/HeuristicLab.Clients.OKB.Views/3.3/RunCreation/Views/OKBExperimentUploadView.cs
===================================================================
--- /branches/EnhancedProgress/HeuristicLab.Clients.OKB.Views/3.3/RunCreation/Views/OKBExperimentUploadView.cs	(revision 15445)
+++ /branches/EnhancedProgress/HeuristicLab.Clients.OKB.Views/3.3/RunCreation/Views/OKBExperimentUploadView.cs	(revision 15446)
@@ -210,5 +210,5 @@
     private void UploadAsync() {
       var message = "Uploading runs to OKB...";
-      IProgress progress = MainFormManager.GetMainForm<HeuristicLab.MainForm.WindowsForms.MainForm>().AddOperationProgressToView(this, message);
+      IProgress progress = MainFormManager.GetMainForm<HeuristicLab.MainForm.WindowsForms.MainForm>().AddOperationProgressToView(this, message, 0);
       double count = dataGridView.Rows.Count;
       int i = 0;
Index: /branches/EnhancedProgress/HeuristicLab.DataPreprocessing.Views/3.4/DataPreprocessingView.cs
===================================================================
--- /branches/EnhancedProgress/HeuristicLab.DataPreprocessing.Views/3.4/DataPreprocessingView.cs	(revision 15445)
+++ /branches/EnhancedProgress/HeuristicLab.DataPreprocessing.Views/3.4/DataPreprocessingView.cs	(revision 15446)
@@ -174,5 +174,5 @@
 
           try {
-            var progress = mainForm.AddOperationProgressToContent(activeView.Content, "Loading problem instance.");
+            var progress = mainForm.AddOperationProgressToContent(activeView.Content, "Loading problem instance.", 0);
 
             instanceProvider.ProgressChanged += (o, args) => { progress.ProgressValue = args.ProgressPercentage / 100.0; };
Index: /branches/EnhancedProgress/HeuristicLab.MainForm.WindowsForms/3.3/Controls/ProgressView.cs
===================================================================
--- /branches/EnhancedProgress/HeuristicLab.MainForm.WindowsForms/3.3/Controls/ProgressView.cs	(revision 15445)
+++ /branches/EnhancedProgress/HeuristicLab.MainForm.WindowsForms/3.3/Controls/ProgressView.cs	(revision 15446)
@@ -158,13 +158,6 @@
 
     private void UpdateProgressValue() {
-      // prevent problems with object disposal and invoke as suggested by http://stackoverflow.com/a/18647091
-      if (!IsHandleCreated) return;
       if (InvokeRequired) {
-        try {
-          Invoke((Action)UpdateProgressValue);
-        } catch (InvalidOperationException) {
-          // swallow ObjectDisposedException 
-          // which might occur if the invoke call is executed after or while the control is disposing
-        }
+        Invoke((Action)UpdateProgressValue);
         return;
       }
Index: /branches/EnhancedProgress/HeuristicLab.MainForm.WindowsForms/3.3/MainForms/MainForm.cs
===================================================================
--- /branches/EnhancedProgress/HeuristicLab.MainForm.WindowsForms/3.3/MainForms/MainForm.cs	(revision 15445)
+++ /branches/EnhancedProgress/HeuristicLab.MainForm.WindowsForms/3.3/MainForms/MainForm.cs	(revision 15446)
@@ -61,5 +61,5 @@
       set {
         if (InvokeRequired) {
-          Action<string> action = delegate(string s) { this.Title = s; };
+          Action<string> action = delegate (string s) { this.Title = s; };
           Invoke(action, value);
         } else
@@ -72,5 +72,5 @@
       set {
         if (InvokeRequired) {
-          Action<Cursor> action = delegate(Cursor c) { this.Cursor = c; };
+          Action<Cursor> action = delegate (Cursor c) { this.Cursor = c; };
           Invoke(action, value);
         } else
@@ -95,5 +95,5 @@
         if (this.activeView != value) {
           if (InvokeRequired) {
-            Action<IView> action = delegate(IView activeView) { this.ActiveView = activeView; };
+            Action<IView> action = delegate (IView activeView) { this.ActiveView = activeView; };
             Invoke(action, value);
           } else {
@@ -230,5 +230,5 @@
     }
 
-    public IContentView ShowContent<T>(T content, bool reuseExistingView, IEqualityComparer<T> comparer = null) where T : class,IContent {
+    public IContentView ShowContent<T>(T content, bool reuseExistingView, IEqualityComparer<T> comparer = null) where T : class, IContent {
       if (content == null) throw new ArgumentNullException("Content cannot be null.");
       if (!reuseExistingView) return ShowContent(content);
@@ -350,12 +350,20 @@
     private readonly List<ProgressView> progressViews = new List<ProgressView>();
 
+    public IProgress AddOperationProgressToContent(IContent content, string progressMessage, double? initialProgressValue = null, bool addToObjectGraphObjects = true) {
+      var progress = new Progress();
+      if (initialProgressValue.HasValue)
+        progress.Start(progressMessage, initialProgressValue.Value);
+      else
+        progress.Start(progressMessage);
+      AddOperationProgressToContent(content, progress, addToObjectGraphObjects);
+      return progress;
+    }
     /// <summary>
     /// Adds a <see cref="ProgressView"/> to the <see cref="ContentView"/>s showing the specified content.
     /// </summary>
-    [Obsolete]
-    public IProgress AddOperationProgressToContent(IContent content, string progressMessage, bool addToObjectGraphObjects = true) {
+    public void AddOperationProgressToContent(IContent content, IProgress progress, bool addToObjectGraphObjects = true) {
       if (InvokeRequired) {
-        IProgress result = (IProgress)Invoke((Func<IContent, string, bool, IProgress>)AddOperationProgressToContent, content, progressMessage, addToObjectGraphObjects);
-        return result;
+        Invoke((Action<IContent, IProgress, bool>)AddOperationProgressToContent, content, progress, addToObjectGraphObjects);
+        return;
       }
       if (contentProgressLookup.ContainsKey(content))
@@ -372,6 +380,4 @@
         contentViews = contentViews.Where(v => v.Content == content);
 
-      var progress = new Progress();
-      progress.Start(progressMessage);
       foreach (var contentView in contentViews) {
         progressViews.Add(new ProgressView(contentView, progress));
@@ -379,18 +385,18 @@
 
       contentProgressLookup[content] = progress;
+    }
+
+    public IProgress AddOperationProgressToView(Control control, string progressMessage, double? initialProgressValue = null) {
+      var progress = new Progress();
+      if (initialProgressValue.HasValue)
+        progress.Start(progressMessage, initialProgressValue.Value);
+      else
+        progress.Start(progressMessage);
+      AddOperationProgressToView(control, progress);
       return progress;
     }
-
     /// <summary>
     /// Adds a <see cref="ProgressView"/> to the specified view.
     /// </summary>
-    [Obsolete]
-    public IProgress AddOperationProgressToView(Control control, string progressMessage) {
-      var progress = new Progress();
-      progress.Start(progressMessage);
-      AddOperationProgressToView(control, progress);
-      return progress;
-    }
-
     public void AddOperationProgressToView(Control control, IProgress progress) {
       if (InvokeRequired) {
@@ -564,6 +570,5 @@
       try {
         ((IActionUserInterfaceItem)item.Tag).Execute();
-      }
-      catch (Exception ex) {
+      } catch (Exception ex) {
         ErrorHandling.ShowErrorDialog((Control)MainFormManager.MainForm, ex);
       }
Index: /branches/EnhancedProgress/HeuristicLab.MainForm/3.3/Progress.cs
===================================================================
--- /branches/EnhancedProgress/HeuristicLab.MainForm/3.3/Progress.cs	(revision 15445)
+++ /branches/EnhancedProgress/HeuristicLab.MainForm/3.3/Progress.cs	(revision 15446)
@@ -101,5 +101,5 @@
 
     /// <summary>
-    /// Starts an "undefined" progress in marquee-mode
+    /// Starts or restarts an "undefined" progress in marquee-mode
     /// </summary>
     public void Start(string message) {
@@ -109,5 +109,5 @@
     }
     /// <summary>
-    /// Starts a progress in continuous-mode
+    /// Starts or restarts a progress in continuous-mode
     /// </summary>
     public void Start(string message, double progressValue) {
Index: /branches/EnhancedProgress/HeuristicLab.Optimizer/3.3/StartPage.cs
===================================================================
--- /branches/EnhancedProgress/HeuristicLab.Optimizer/3.3/StartPage.cs	(revision 15445)
+++ /branches/EnhancedProgress/HeuristicLab.Optimizer/3.3/StartPage.cs	(revision 15446)
@@ -88,5 +88,5 @@
 
     private void LoadSamples(object state) {
-      progress = MainFormManager.GetMainForm<HeuristicLab.MainForm.WindowsForms.MainForm>().AddOperationProgressToView(samplesListView, "Loading...");
+      progress = MainFormManager.GetMainForm<HeuristicLab.MainForm.WindowsForms.MainForm>().AddOperationProgressToView(samplesListView, "Loading...", 0);
       try {
         var assembly = Assembly.GetExecutingAssembly();
@@ -138,5 +138,5 @@
         };
       groupLookup[standardProblemsGroup] = standardProblems;
-      var dataAnalysisProblems = new List<string> { "ALPSGP_SymReg", "SGP_SymbClass", "SGP_SymbReg","OSGP_SymReg", "OSGP_TimeSeries", "GE_SymbReg", "GPR" };
+      var dataAnalysisProblems = new List<string> { "ALPSGP_SymReg", "SGP_SymbClass", "SGP_SymbReg", "OSGP_SymReg", "OSGP_TimeSeries", "GE_SymbReg", "GPR" };
       groupLookup[dataAnalysisGroup] = dataAnalysisProblems;
       var scripts = new List<string> { "GA_QAP_Script", "GUI_Automation_Script", "OSGA_Rastrigin_Script",
Index: /branches/EnhancedProgress/HeuristicLab.Problems.Instances.DataAnalysis.Views/3.3/RegressionInstanceProviderView.cs
===================================================================
--- /branches/EnhancedProgress/HeuristicLab.Problems.Instances.DataAnalysis.Views/3.3/RegressionInstanceProviderView.cs	(revision 15445)
+++ /branches/EnhancedProgress/HeuristicLab.Problems.Instances.DataAnalysis.Views/3.3/RegressionInstanceProviderView.cs	(revision 15446)
@@ -52,5 +52,5 @@
           try {
             var progress = mainForm.AddOperationProgressToContent(activeView.Content,
-              "Loading problem instance.");
+              "Loading problem instance.", 0);
 
             Content.ProgressChanged +=
