Index: trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/Controls/ProgressView.cs
===================================================================
--- trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/Controls/ProgressView.cs	(revision 15398)
+++ trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/Controls/ProgressView.cs	(revision 15400)
@@ -154,5 +154,5 @@
         if (content != null) {
           double progressValue = content.ProgressValue;
-          if (progressValue < 0.0 || progressValue > 1.0) {
+          if (progressValue <= 0.0 || progressValue > 1.0) {
             progressBar.Style = ProgressBarStyle.Marquee;
           } else {
Index: trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/MainForms/MainForm.cs
===================================================================
--- trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/MainForms/MainForm.cs	(revision 15398)
+++ trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/MainForms/MainForm.cs	(revision 15400)
@@ -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);
@@ -353,7 +353,7 @@
     /// Adds a <see cref="ProgressView"/> to the <see cref="ContentView"/>s showing the specified content.
     /// </summary>
-    public IProgress AddOperationProgressToContent(IContent content, string progressMessage, double progressValue = -1, bool addToObjectGraphObjects = true) {
+    public IProgress AddOperationProgressToContent(IContent content, string progressMessage, bool addToObjectGraphObjects = true) {
       if (InvokeRequired) {
-        IProgress result = (IProgress)Invoke((Func<IContent, string, double, bool, IProgress>)AddOperationProgressToContent, content, progressMessage, progressValue, addToObjectGraphObjects);
+        IProgress result = (IProgress)Invoke((Func<IContent, string, bool, IProgress>)AddOperationProgressToContent, content, progressMessage, addToObjectGraphObjects);
         return result;
       }
@@ -371,6 +371,5 @@
         contentViews = contentViews.Where(v => v.Content == content);
 
-      var progress = new Progress();
-      progress.Start(progressMessage, progressValue);
+      var progress = new Progress(progressMessage, ProgressState.Started);
       foreach (var contentView in contentViews) {
         progressViews.Add(new ProgressView(contentView, progress));
@@ -385,6 +384,5 @@
     /// </summary>
     public IProgress AddOperationProgressToView(Control control, string progressMessage) {
-      var progress = new Progress();
-      progress.Start(progressMessage);
+      var progress = new Progress(progressMessage, ProgressState.Started);
       AddOperationProgressToView(control, progress);
       return progress;
Index: trunk/sources/HeuristicLab.MainForm/3.3/Interfaces/IProgress.cs
===================================================================
--- trunk/sources/HeuristicLab.MainForm/3.3/Interfaces/IProgress.cs	(revision 15398)
+++ trunk/sources/HeuristicLab.MainForm/3.3/Interfaces/IProgress.cs	(revision 15400)
@@ -64,6 +64,6 @@
     /// </summary>
     void Start();
+
     void Start(string status);
-    void Start(string status, double progressValue);
 
     /// <summary>
Index: trunk/sources/HeuristicLab.MainForm/3.3/Progress.cs
===================================================================
--- trunk/sources/HeuristicLab.MainForm/3.3/Progress.cs	(revision 15398)
+++ trunk/sources/HeuristicLab.MainForm/3.3/Progress.cs	(revision 15400)
@@ -72,4 +72,13 @@
       canBeCanceled = false;
     }
+    public Progress(string status)
+      : this() {
+      this.status = status;
+    }
+    public Progress(string status, ProgressState state)
+      : this() {
+      this.status = status;
+      this.progressState = state;
+    }
 
     public void Cancel() {
@@ -84,13 +93,11 @@
 
     public void Start() {
-      Start(string.Empty);
+      ProgressValue = 0.0;
+      ProgressState = ProgressState.Started;
     }
+
     public void Start(string status) {
-      Start(status, -1.0);
-    }
-    public void Start(string status, double progressValue) {
-      ProgressState = ProgressState.Started;
-      Status = status ?? string.Empty;
-      ProgressValue = progressValue;
+      Start();
+      Status = status;
     }
 
Index: trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views/3.4/InteractiveSymbolicRegressionSolutionSimplifierView.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views/3.4/InteractiveSymbolicRegressionSolutionSimplifierView.cs	(revision 15398)
+++ trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views/3.4/InteractiveSymbolicRegressionSolutionSimplifierView.cs	(revision 15400)
@@ -44,15 +44,15 @@
     }
 
-    protected override ISymbolicExpressionTree OptimizeConstants(ISymbolicDataAnalysisModel model, IDataAnalysisProblemData problemData, IProgress progress) {
+    protected override ISymbolicExpressionTree OptimizeConstants(ISymbolicExpressionTree tree, IProgress progress) {
       const int constOptIterations = 50;
-      var regressionModel = (ISymbolicDataAnalysisModel)model.Clone();
-      var regressionProblemData = (IRegressionProblemData)problemData;
-      SymbolicRegressionConstantOptimizationEvaluator.OptimizeConstants(regressionModel.Interpreter, regressionModel.SymbolicExpressionTree, regressionProblemData, regressionProblemData.TrainingIndices,
-        applyLinearScaling: true, maxIterations: constOptIterations, updateVariableWeights: true, lowerEstimationLimit: regressionModel.LowerEstimationLimit, upperEstimationLimit: regressionModel.UpperEstimationLimit,
+      var regressionProblemData = Content.ProblemData;
+      var model = Content.Model;
+      SymbolicRegressionConstantOptimizationEvaluator.OptimizeConstants(model.Interpreter, tree, regressionProblemData, regressionProblemData.TrainingIndices,
+        applyLinearScaling: true, maxIterations: constOptIterations, updateVariableWeights: true, lowerEstimationLimit: model.LowerEstimationLimit, upperEstimationLimit: model.UpperEstimationLimit,
         iterationCallback: (args, func, obj) => {
           double newProgressValue = progress.ProgressValue + 1.0 / (constOptIterations + 2); // (maxIterations + 2) iterations are reported
           progress.ProgressValue = Math.Min(newProgressValue, 1.0);
         });
-      return regressionModel.SymbolicExpressionTree;
+      return tree;
     }
   }
Index: trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/InteractiveSymbolicDataAnalysisSolutionSimplifierView.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/InteractiveSymbolicDataAnalysisSolutionSimplifierView.cs	(revision 15398)
+++ trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/InteractiveSymbolicDataAnalysisSolutionSimplifierView.cs	(revision 15400)
@@ -183,5 +183,5 @@
       treeChart.Tree = tree.Root.SubtreeCount > 1 ? new SymbolicExpressionTree(tree.Root) : new SymbolicExpressionTree(tree.Root.GetSubtree(0).GetSubtree(0));
 
-      progress.Start("Calculate Impact and Replacement Values ...", 0);
+      progress.Start("Calculate Impact and Replacement Values ...");
       var impactAndReplacementValues = await Task.Run(() => CalculateImpactAndReplacementValues(tree));
       await Task.Delay(500); // wait for progressbar to finish animation
@@ -209,6 +209,6 @@
     protected abstract void UpdateModel(ISymbolicExpressionTree tree);
 
-    protected virtual ISymbolicExpressionTree OptimizeConstants(ISymbolicDataAnalysisModel model, IDataAnalysisProblemData problemData, IProgress progress) {
-      return model.SymbolicExpressionTree;
+    protected virtual ISymbolicExpressionTree OptimizeConstants(ISymbolicExpressionTree tree, IProgress progress) {
+      return tree;
     }
 
@@ -298,6 +298,7 @@
 
     private async void btnOptimizeConstants_Click(object sender, EventArgs e) {
-      progress.Start("Optimizing Constants ...", 0);
-      var newTree = await Task.Run(() => OptimizeConstants(Content.Model, Content.ProblemData, progress));
+      progress.Start("Optimizing Constants ...");
+      var tree = (ISymbolicExpressionTree)Content.Model.SymbolicExpressionTree.Clone();
+      var newTree = await Task.Run(() => OptimizeConstants(tree, progress));
       await Task.Delay(500); // wait for progressbar to finish animation
       UpdateModel(newTree); // UpdateModel calls Progress.Finish (via Content_Changed)
Index: trunk/sources/HeuristicLab.Tracing/3.3/app.config
===================================================================
--- trunk/sources/HeuristicLab.Tracing/3.3/app.config	(revision 15398)
+++ trunk/sources/HeuristicLab.Tracing/3.3/app.config	(revision 15400)
@@ -5,5 +5,5 @@
       <listeners>
         <add name="HeuristicLabListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="HeuristicLab.log"/>
-        <remove name="Default"/>
+        <!--<remove name="Default"/>-->
       </listeners>
     </trace>
