Index: branches/DataPreprocessing/HeuristicLab.Problems.Scheduling.Views/3.3/JobShopSchedulingProblemView.Designer.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.Problems.Scheduling.Views/3.3/JobShopSchedulingProblemView.Designer.cs	(revision 10085)
+++ branches/DataPreprocessing/HeuristicLab.Problems.Scheduling.Views/3.3/JobShopSchedulingProblemView.Designer.cs	(revision 10538)
@@ -60,19 +60,7 @@
       this.SuspendLayout();
       // 
-      // problemInstanceSplitContainer
-      // 
-      this.problemInstanceSplitContainer.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)));
-      this.problemInstanceSplitContainer.Dock = System.Windows.Forms.DockStyle.Fill;
-      // 
       // problemInstanceSplitContainer.Panel2
       // 
       this.problemInstanceSplitContainer.Panel2.Controls.Add(this.problemTabControl);
-      // 
-      // ProblemInstanceConsumerViewHost
-      // 
-      this.problemInstanceProviderViewHost.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)));
-      this.problemInstanceProviderViewHost.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.problemInstanceProviderViewHost.Location = new System.Drawing.Point(0, 0);
-      this.problemInstanceProviderViewHost.Size = new System.Drawing.Size(511, 26);
       // 
       // parameterCollectionView
Index: branches/DataPreprocessing/HeuristicLab.Problems.Scheduling.Views/3.3/JobShopSchedulingProblemView.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.Problems.Scheduling.Views/3.3/JobShopSchedulingProblemView.cs	(revision 10085)
+++ branches/DataPreprocessing/HeuristicLab.Problems.Scheduling.Views/3.3/JobShopSchedulingProblemView.cs	(revision 10538)
@@ -20,5 +20,8 @@
 #endregion
 
+using System;
 using System.Windows.Forms;
+using HeuristicLab.Collections;
+using HeuristicLab.Encodings.ScheduleEncoding;
 using HeuristicLab.MainForm;
 using HeuristicLab.Optimization.Views;
@@ -43,17 +46,60 @@
     protected override void OnContentChanged() {
       base.OnContentChanged();
-      if (Content == null) {
-        ganttChart.Reset();
-      } else {
-        FillGanttChart(Content);
+      FillGanttChart();
+    }
+
+    protected override void DeregisterContentEvents() {
+      Content.JobDataParameter.ValueChanged -= JobDataParameterOnValueChanged;
+      Content.JobData.ItemsAdded -= JobsOnChanged;
+      Content.JobData.ItemsRemoved -= JobsOnChanged;
+      Content.JobData.ItemsReplaced -= JobsOnChanged;
+      Content.JobData.CollectionReset -= JobsOnChanged;
+      foreach (var job in Content.JobData) {
+        job.TasksChanged -= JobOnTasksChanged;
+      }
+      base.DeregisterContentEvents();
+    }
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+      Content.JobDataParameter.ValueChanged += JobDataParameterOnValueChanged;
+      Content.JobData.ItemsAdded += JobsOnChanged;
+      Content.JobData.ItemsRemoved += JobsOnChanged;
+      Content.JobData.ItemsReplaced += JobsOnChanged;
+      Content.JobData.CollectionReset += JobsOnChanged;
+      foreach (var job in Content.JobData) {
+        job.TasksChanged += JobOnTasksChanged;
       }
     }
 
-    private void FillGanttChart(JobShopSchedulingProblem content) {
+    private void JobsOnChanged(object sender, CollectionItemsChangedEventArgs<IndexedItem<Job>> e) {
+      foreach (var job in e.OldItems)
+        job.Value.TasksChanged -= JobOnTasksChanged;
+      foreach (var job in e.Items)
+        job.Value.TasksChanged += JobOnTasksChanged;
+      FillGanttChart();
+    }
+
+    private void JobDataParameterOnValueChanged(object sender, EventArgs e) {
+      Content.JobData.ItemsAdded += JobsOnChanged;
+      Content.JobData.ItemsRemoved += JobsOnChanged;
+      Content.JobData.ItemsReplaced += JobsOnChanged;
+      Content.JobData.CollectionReset += JobsOnChanged;
+      foreach (var job in Content.JobData) {
+        job.TasksChanged += JobOnTasksChanged;
+      }
+      FillGanttChart();
+    }
+
+    private void JobOnTasksChanged(object sender, EventArgs e) {
+      FillGanttChart();
+    }
+
+    private void FillGanttChart() {
       ganttChart.Reset();
+      if (Content == null) return;
       int jobCount = 0;
-      foreach (var j in content.JobData) {
+      foreach (var j in Content.JobData) {
         double lastEndTime = 0;
-        foreach (var t in content.JobData[jobCount].Tasks) {
+        foreach (var t in Content.JobData[jobCount].Tasks) {
           int categoryNr = t.JobNr;
           string categoryName = "Job" + categoryNr;
@@ -63,5 +109,5 @@
             lastEndTime + 1,
             lastEndTime + t.Duration,
-            "Job" + t.JobNr + " - " + "Task#" + t.TaskNr.ToString());
+            "Job" + t.JobNr + " - " + "Task#" + t.TaskNr);
           lastEndTime += t.Duration;
         }
