Index: /trunk/sources/HeuristicLab.Operators/CombinedOperator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Operators/CombinedOperator.cs	(revision 51)
+++ /trunk/sources/HeuristicLab.Operators/CombinedOperator.cs	(revision 52)
@@ -71,4 +71,12 @@
           scope.AddVariable(new Variable(SubOperators[i].Name, SubOperators[i]));
         }
+
+        foreach (IVariableInfo variableInfo in VariableInfos) {
+          IItem value = GetVariableValue(variableInfo.FormalName, scope, true, true);
+          if (scope.GetVariable(variableInfo.FormalName) != null)
+            scope.RemoveVariable(variableInfo.FormalName);
+          scope.AddVariable(new Variable(variableInfo.FormalName, value));
+        }
+
         return new AtomicOperation(OperatorGraph.InitialOperator, scope);
       } else {
Index: /trunk/sources/HeuristicLab.Operators/CombinedOperatorView.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Operators/CombinedOperatorView.Designer.cs	(revision 51)
+++ /trunk/sources/HeuristicLab.Operators/CombinedOperatorView.Designer.cs	(revision 52)
@@ -56,4 +56,6 @@
       this.descriptionTabPage = new System.Windows.Forms.TabPage();
       this.descriptionTextBox = new System.Windows.Forms.TextBox();
+      this.removeVariableInfoButton = new System.Windows.Forms.Button();
+      this.addVariableInfoButton = new System.Windows.Forms.Button();
       this.tabControl.SuspendLayout();
       this.operatorGraphTabPage.SuspendLayout();
@@ -101,4 +103,6 @@
       // variableInfosTabPage
       // 
+      this.variableInfosTabPage.Controls.Add(this.removeVariableInfoButton);
+      this.variableInfosTabPage.Controls.Add(this.addVariableInfoButton);
       this.variableInfosTabPage.Controls.Add(this.operatorBaseVariableInfosView);
       this.variableInfosTabPage.Location = new System.Drawing.Point(4, 22);
@@ -112,11 +116,14 @@
       // operatorBaseVariableInfosView
       // 
+      this.operatorBaseVariableInfosView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+                  | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
       this.operatorBaseVariableInfosView.Caption = "Operator";
-      this.operatorBaseVariableInfosView.Dock = System.Windows.Forms.DockStyle.Fill;
       this.operatorBaseVariableInfosView.Location = new System.Drawing.Point(3, 3);
       this.operatorBaseVariableInfosView.Name = "operatorBaseVariableInfosView";
       this.operatorBaseVariableInfosView.Operator = null;
-      this.operatorBaseVariableInfosView.Size = new System.Drawing.Size(383, 303);
+      this.operatorBaseVariableInfosView.Size = new System.Drawing.Size(383, 274);
       this.operatorBaseVariableInfosView.TabIndex = 0;
+      this.operatorBaseVariableInfosView.SelectedVariableInfosChanged += new System.EventHandler(this.operatorBaseVariableInfosView_SelectedVariableInfosChanged);
       // 
       // variablesTabPage
@@ -184,4 +191,27 @@
       this.descriptionTextBox.TabIndex = 0;
       this.descriptionTextBox.Validated += new System.EventHandler(this.descriptionTextBox_Validated);
+      // 
+      // removeVariableInfoButton
+      // 
+      this.removeVariableInfoButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+      this.removeVariableInfoButton.Enabled = false;
+      this.removeVariableInfoButton.Location = new System.Drawing.Point(84, 283);
+      this.removeVariableInfoButton.Name = "removeVariableInfoButton";
+      this.removeVariableInfoButton.Size = new System.Drawing.Size(75, 23);
+      this.removeVariableInfoButton.TabIndex = 2;
+      this.removeVariableInfoButton.Text = "&Remove";
+      this.removeVariableInfoButton.UseVisualStyleBackColor = true;
+      this.removeVariableInfoButton.Click += new System.EventHandler(this.removeVariableInfoButton_Click);
+      // 
+      // addVariableInfoButton
+      // 
+      this.addVariableInfoButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+      this.addVariableInfoButton.Location = new System.Drawing.Point(3, 283);
+      this.addVariableInfoButton.Name = "addVariableInfoButton";
+      this.addVariableInfoButton.Size = new System.Drawing.Size(75, 23);
+      this.addVariableInfoButton.TabIndex = 1;
+      this.addVariableInfoButton.Text = "&Add...";
+      this.addVariableInfoButton.UseVisualStyleBackColor = true;
+      this.addVariableInfoButton.Click += new System.EventHandler(this.addVariableInfoButton_Click);
       // 
       // CombinedOperatorView
@@ -216,4 +246,6 @@
     private HeuristicLab.Core.OperatorBaseVariablesView operatorBaseVariablesView;
     private HeuristicLab.Core.ConstrainedItemBaseView constrainedItemBaseView;
+    private System.Windows.Forms.Button removeVariableInfoButton;
+    private System.Windows.Forms.Button addVariableInfoButton;
 
   }
Index: /trunk/sources/HeuristicLab.Operators/CombinedOperatorView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Operators/CombinedOperatorView.cs	(revision 51)
+++ /trunk/sources/HeuristicLab.Operators/CombinedOperatorView.cs	(revision 52)
@@ -79,4 +79,27 @@
       CombinedOperator.SetDescription(descriptionTextBox.Text);
     }
+
+    private void operatorBaseVariableInfosView_SelectedVariableInfosChanged(object sender, EventArgs e) {
+      removeVariableInfoButton.Enabled = operatorBaseVariableInfosView.SelectedVariableInfos.Count > 0;
+    }
+
+    #region Click Events
+    private void addVariableInfoButton_Click(object sender, EventArgs e) {
+      AddVariableInfoDialog dialog = new AddVariableInfoDialog();
+      if (dialog.ShowDialog(this) == DialogResult.OK) {
+        if (CombinedOperator.GetVariableInfo(dialog.VariableInfo.FormalName) != null)
+          Auxiliary.ShowErrorMessageBox("A variable info with the same formal name already exists.");
+        else
+          CombinedOperator.AddVariableInfo(dialog.VariableInfo);
+      }
+      dialog.Dispose();
+    }
+    private void removeVariableInfoButton_Click(object sender, EventArgs e) {
+      IVariableInfo[] selected = new IVariableInfo[operatorBaseVariableInfosView.SelectedVariableInfos.Count];
+      operatorBaseVariableInfosView.SelectedVariableInfos.CopyTo(selected, 0);
+      for (int i = 0; i < selected.Length; i++)
+        CombinedOperator.RemoveVariableInfo(selected[i].FormalName);
+    }
+    #endregion
   }
 }
