Index: trunk/sources/HeuristicLab.Core/3.3/ChangedEventArgs.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/ChangedEventArgs.cs	(revision 2931)
+++ 	(revision )
@@ -1,44 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.Text;
-using HeuristicLab.Common;
-
-namespace HeuristicLab.Core {
-  public delegate void ChangedEventHandler(object sender, ChangedEventArgs e);
-
-  public class ChangedEventArgs : EventArgs {
-    private HashSet<object> changedObjects;
-
-    public ChangedEventArgs() {
-      changedObjects = new HashSet<object>(new ReferenceEqualityComparer<object>());
-    }
-    public ChangedEventArgs(IEnumerable<object> collection) {
-      changedObjects = new HashSet<object>(collection, new ReferenceEqualityComparer<object>());
-    }
-
-    public bool RegisterChangedObject(object obj) {
-      return changedObjects.Add(obj);
-    }
-  }
-}
Index: trunk/sources/HeuristicLab.Core/3.3/HeuristicLab.Core-3.3.csproj
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/HeuristicLab.Core-3.3.csproj	(revision 2931)
+++ trunk/sources/HeuristicLab.Core/3.3/HeuristicLab.Core-3.3.csproj	(revision 2932)
@@ -102,5 +102,4 @@
     <Compile Include="Cloner.cs" />
     <Compile Include="Attributes\CreatableAttribute.cs" />
-    <Compile Include="ChangedEventArgs.cs" />
     <None Include="HeuristicLabCorePlugin.cs.frame" />
     <Compile Include="Interfaces\IParameterizedNamedItem.cs" />
Index: trunk/sources/HeuristicLab.Core/3.3/Interfaces/IItem.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/Interfaces/IItem.cs	(revision 2931)
+++ trunk/sources/HeuristicLab.Core/3.3/Interfaces/IItem.cs	(revision 2932)
@@ -20,4 +20,5 @@
 #endregion
 
+using System;
 using System.Drawing;
 
@@ -31,5 +32,5 @@
     Image ItemImage { get; }
 
-    event ChangedEventHandler Changed;
+    event EventHandler ToStringChanged;
   }
 }
Index: trunk/sources/HeuristicLab.Core/3.3/Item.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/Item.cs	(revision 2931)
+++ trunk/sources/HeuristicLab.Core/3.3/Item.cs	(revision 2932)
@@ -20,4 +20,5 @@
 #endregion
 
+using System;
 using System.Drawing;
 using HeuristicLab.Common.Resources;
@@ -49,11 +50,8 @@
     }
 
-    public event ChangedEventHandler Changed;
-    protected void OnChanged() {
-      OnChanged(new ChangedEventArgs());
-    }
-    protected virtual void OnChanged(ChangedEventArgs e) {
-      if ((e.RegisterChangedObject(this)) && (Changed != null))
-        Changed(this, e);
+    public event EventHandler ToStringChanged;
+    protected virtual void OnToStringChanged() {
+      if (ToStringChanged != null)
+        ToStringChanged(this, EventArgs.Empty);
     }
   }
Index: trunk/sources/HeuristicLab.Core/3.3/ItemArray.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/ItemArray.cs	(revision 2931)
+++ trunk/sources/HeuristicLab.Core/3.3/ItemArray.cs	(revision 2932)
@@ -35,13 +35,4 @@
   [Item("ItemArray<T>", "Represents an array of items.")]
   public class ItemArray<T> : ObservableArray<T>, IItem where T : class, IItem {
-    [Storable(Name = "RestoreEvents")]
-    private object RestoreEvents {
-      get { return null; }
-      set {
-        foreach (T item in this)
-          if (item != null) item.Changed += new ChangedEventHandler(Item_Changed);
-      }
-    }
-
     public virtual string ItemName {
       get { return ItemAttribute.GetName(this.GetType()); }
@@ -56,12 +47,6 @@
     public ItemArray() : base() { }
     public ItemArray(int length) : base(length) { }
-    public ItemArray(T[] array) : base(array) {
-      foreach (T item in this)
-        if (item != null) item.Changed += new ChangedEventHandler(Item_Changed);
-    }
-    public ItemArray(IEnumerable<T> collection) : base(collection) {
-      foreach (T item in this)
-        if (item != null) item.Changed += new ChangedEventHandler(Item_Changed);
-    }
+    public ItemArray(T[] array) : base(array) { }
+    public ItemArray(IEnumerable<T> collection) : base(collection) { }
 
     public object Clone() {
@@ -79,34 +64,8 @@
     }
 
-    public event ChangedEventHandler Changed;
-    protected void OnChanged() {
-      OnChanged(new ChangedEventArgs());
-    }
-    protected virtual void OnChanged(ChangedEventArgs e) {
-      if ((e.RegisterChangedObject(this)) && (Changed != null))
-        Changed(this, e);
-    }
-
-    protected override void OnItemsReplaced(IEnumerable<IndexedItem<T>> items, IEnumerable<IndexedItem<T>> oldItems) {
-      foreach (IndexedItem<T> oldItem in oldItems)
-        if (oldItem.Value != null) oldItem.Value.Changed -= new ChangedEventHandler(Item_Changed);
-      foreach (IndexedItem<T> item in items)
-        if (item.Value != null) item.Value.Changed += new ChangedEventHandler(Item_Changed);
-      base.OnItemsReplaced(items, oldItems);
-    }
-    protected override void OnCollectionReset(IEnumerable<IndexedItem<T>> items, IEnumerable<IndexedItem<T>> oldItems) {
-      foreach (IndexedItem<T> oldItem in oldItems)
-        if (oldItem.Value != null) oldItem.Value.Changed -= new ChangedEventHandler(Item_Changed);
-      foreach (IndexedItem<T> item in items)
-        if (item.Value != null) item.Value.Changed += new ChangedEventHandler(Item_Changed);
-      base.OnCollectionReset(items, oldItems);
-    }
-    protected override void OnPropertyChanged(string propertyName) {
-      base.OnPropertyChanged(propertyName);
-      OnChanged();
-    }
-
-    private void Item_Changed(object sender, ChangedEventArgs e) {
-      OnChanged(e);
+    public event EventHandler ToStringChanged;
+    protected virtual void OnToStringChanged() {
+      if (ToStringChanged != null)
+        ToStringChanged(this, EventArgs.Empty);
     }
   }
Index: trunk/sources/HeuristicLab.Core/3.3/ItemCollection.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/ItemCollection.cs	(revision 2931)
+++ trunk/sources/HeuristicLab.Core/3.3/ItemCollection.cs	(revision 2932)
@@ -32,13 +32,4 @@
   [Item("ItemCollection<T>", "Represents a collection of items.")]
   public class ItemCollection<T> : ObservableCollection<T>, IItem where T : class, IItem {
-    [Storable(Name = "RestoreEvents")]
-    private object RestoreEvents {
-      get { return null; }
-      set {
-        foreach (T item in this)
-          if (item != null) item.Changed += new ChangedEventHandler(Item_Changed);
-      }
-    }
-
     public virtual string ItemName {
       get { return ItemAttribute.GetName(this.GetType()); }
@@ -53,8 +44,5 @@
     public ItemCollection() : base() { }
     public ItemCollection(int capacity) : base(capacity) { }
-    public ItemCollection(IEnumerable<T> collection) : base(collection) {
-      foreach (T item in this)
-        if (item != null) item.Changed += new ChangedEventHandler(Item_Changed);
-    }
+    public ItemCollection(IEnumerable<T> collection) : base(collection) { }
 
     public object Clone() {
@@ -72,37 +60,8 @@
     }
 
-    public event ChangedEventHandler Changed;
-    protected void OnChanged() {
-      OnChanged(new ChangedEventArgs());
-    }
-    protected virtual void OnChanged(ChangedEventArgs e) {
-      if ((e.RegisterChangedObject(this)) && (Changed != null))
-        Changed(this, e);
-    }
-
-    protected override void OnItemsAdded(IEnumerable<T> items) {
-      foreach (T item in items)
-        if (item != null) item.Changed += new ChangedEventHandler(Item_Changed);
-      base.OnItemsAdded(items);
-    }
-    protected override void OnItemsRemoved(IEnumerable<T> items) {
-      foreach (T item in items)
-        if (item != null) item.Changed -= new ChangedEventHandler(Item_Changed);
-      base.OnItemsRemoved(items);
-    }
-    protected override void OnCollectionReset(IEnumerable<T> items, IEnumerable<T> oldItems) {
-      foreach (T oldItem in oldItems)
-        if (oldItem != null) oldItem.Changed -= new ChangedEventHandler(Item_Changed);
-      foreach (T item in items)
-        if (item != null) item.Changed += new ChangedEventHandler(Item_Changed);
-      base.OnCollectionReset(items, oldItems);
-    }
-    protected override void OnPropertyChanged(string propertyName) {
-      base.OnPropertyChanged(propertyName);
-      OnChanged();
-    }
-
-    private void Item_Changed(object sender, ChangedEventArgs e) {
-      OnChanged(e);
+    public event EventHandler ToStringChanged;
+    protected virtual void OnToStringChanged() {
+      if (ToStringChanged != null)
+        ToStringChanged(this, EventArgs.Empty);
     }
   }
Index: trunk/sources/HeuristicLab.Core/3.3/ItemList.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/ItemList.cs	(revision 2931)
+++ trunk/sources/HeuristicLab.Core/3.3/ItemList.cs	(revision 2932)
@@ -36,13 +36,4 @@
   [Item("ItemList<T>", "Represents a list of items.")]
   public class ItemList<T> : ObservableList<T>, IItem where T : class, IItem {
-    [Storable(Name = "RestoreEvents")]
-    private object RestoreEvents {
-      get { return null; }
-      set {
-        foreach (T item in this)
-          if (item != null) item.Changed += new ChangedEventHandler(Item_Changed);
-      }
-    }
-
     public virtual string ItemName {
       get { return ItemAttribute.GetName(this.GetType()); }
@@ -57,8 +48,5 @@
     public ItemList() : base() { }
     public ItemList(int capacity) : base(capacity) { }
-    public ItemList(IEnumerable<T> collection) : base(collection) {
-      foreach (T item in this)
-        if (item != null) item.Changed += new ChangedEventHandler(Item_Changed);
-    }
+    public ItemList(IEnumerable<T> collection) : base(collection) { }
 
     public object Clone() {
@@ -76,44 +64,8 @@
     }
 
-    public event ChangedEventHandler Changed;
-    protected void OnChanged() {
-      OnChanged(new ChangedEventArgs());
-    }
-    protected virtual void OnChanged(ChangedEventArgs e) {
-      if ((e.RegisterChangedObject(this)) && (Changed != null))
-        Changed(this, e);
-    }
-
-    protected override void OnItemsAdded(IEnumerable<IndexedItem<T>> items) {
-      foreach (IndexedItem<T> item in items)
-        if (item.Value != null) item.Value.Changed += new ChangedEventHandler(Item_Changed);
-      base.OnItemsAdded(items);
-    }
-    protected override void OnItemsRemoved(IEnumerable<IndexedItem<T>> items) {
-      foreach (IndexedItem<T> item in items)
-        if (item.Value != null) item.Value.Changed -= new ChangedEventHandler(Item_Changed);
-      base.OnItemsRemoved(items);
-    }
-    protected override void OnItemsReplaced(IEnumerable<IndexedItem<T>> items, IEnumerable<IndexedItem<T>> oldItems) {
-      foreach (IndexedItem<T> oldItem in oldItems)
-        if (oldItem.Value != null) oldItem.Value.Changed -= new ChangedEventHandler(Item_Changed);
-      foreach (IndexedItem<T> item in items)
-        if (item.Value != null) item.Value.Changed += new ChangedEventHandler(Item_Changed);
-      base.OnItemsReplaced(items, oldItems);
-    }
-    protected override void OnCollectionReset(IEnumerable<IndexedItem<T>> items, IEnumerable<IndexedItem<T>> oldItems) {
-      foreach (IndexedItem<T> oldItem in oldItems)
-        if (oldItem.Value != null) oldItem.Value.Changed -= new ChangedEventHandler(Item_Changed);
-      foreach (IndexedItem<T> item in items)
-        if (item.Value != null) item.Value.Changed += new ChangedEventHandler(Item_Changed);
-      base.OnCollectionReset(items, oldItems);
-    }
-    protected override void OnPropertyChanged(string propertyName) {
-      base.OnPropertyChanged(propertyName);
-      OnChanged();
-    }
-
-    private void Item_Changed(object sender, ChangedEventArgs e) {
-      OnChanged(e);
+    public event EventHandler ToStringChanged;
+    protected virtual void OnToStringChanged() {
+      if (ToStringChanged != null)
+        ToStringChanged(this, EventArgs.Empty);
     }
   }
Index: trunk/sources/HeuristicLab.Core/3.3/ItemSet.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/ItemSet.cs	(revision 2931)
+++ trunk/sources/HeuristicLab.Core/3.3/ItemSet.cs	(revision 2932)
@@ -36,13 +36,4 @@
   [Item("ItemSet<T>", "Represents a set of items.")]
   public class ItemSet<T> : ObservableSet<T>, IItem where T : class, IItem {
-    [Storable(Name = "RestoreEvents")]
-    private object RestoreEvents {
-      get { return null; }
-      set {
-        foreach (T item in this)
-          if (item != null) item.Changed += new ChangedEventHandler(Item_Changed);
-      }
-    }
-
     public virtual string ItemName {
       get { return ItemAttribute.GetName(this.GetType()); }
@@ -56,8 +47,5 @@
 
     public ItemSet() : base() { }
-    public ItemSet(IEnumerable<T> collection) : base(collection) {
-      foreach (T item in this)
-        if (item != null) item.Changed += new ChangedEventHandler(Item_Changed);
-    }
+    public ItemSet(IEnumerable<T> collection) : base(collection) { }
 
     public object Clone() {
@@ -75,37 +63,8 @@
     }
 
-    public event ChangedEventHandler Changed;
-    protected void OnChanged() {
-      OnChanged(new ChangedEventArgs());
-    }
-    protected virtual void OnChanged(ChangedEventArgs e) {
-      if ((e.RegisterChangedObject(this)) && (Changed != null))
-        Changed(this, e);
-    }
-
-    protected override void OnItemsAdded(IEnumerable<T> items) {
-      foreach (T item in items)
-        if (item != null) item.Changed += new ChangedEventHandler(Item_Changed);
-      base.OnItemsAdded(items);
-    }
-    protected override void OnItemsRemoved(IEnumerable<T> items) {
-      foreach (T item in items)
-        if (item != null) item.Changed -= new ChangedEventHandler(Item_Changed);
-      base.OnItemsRemoved(items);
-    }
-    protected override void OnCollectionReset(IEnumerable<T> items, IEnumerable<T> oldItems) {
-      foreach (T oldItem in oldItems)
-        if (oldItem != null) oldItem.Changed -= new ChangedEventHandler(Item_Changed);
-      foreach (T item in items)
-        if (item != null) item.Changed += new ChangedEventHandler(Item_Changed);
-      base.OnCollectionReset(items, oldItems);
-    }
-    protected override void OnPropertyChanged(string propertyName) {
-      base.OnPropertyChanged(propertyName);
-      OnChanged();
-    }
-
-    private void Item_Changed(object sender, ChangedEventArgs e) {
-      OnChanged(e);
+    public event EventHandler ToStringChanged;
+    protected virtual void OnToStringChanged() {
+      if (ToStringChanged != null)
+        ToStringChanged(this, EventArgs.Empty);
     }
   }
Index: trunk/sources/HeuristicLab.Core/3.3/NamedItem.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/NamedItem.cs	(revision 2931)
+++ trunk/sources/HeuristicLab.Core/3.3/NamedItem.cs	(revision 2932)
@@ -130,5 +130,5 @@
       if (NameChanged != null)
         NameChanged(this, EventArgs.Empty);
-      OnChanged();
+      OnToStringChanged();
     }
     /// <inheritdoc/>
@@ -141,5 +141,4 @@
       if (DescriptionChanged != null)
         DescriptionChanged(this, EventArgs.Empty);
-      OnChanged();
     }
   }
Index: trunk/sources/HeuristicLab.Core/3.3/NamedItemCollection.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/NamedItemCollection.cs	(revision 2931)
+++ trunk/sources/HeuristicLab.Core/3.3/NamedItemCollection.cs	(revision 2932)
@@ -66,11 +66,8 @@
     }
 
-    public event ChangedEventHandler Changed;
-    protected void OnChanged() {
-      OnChanged(new ChangedEventArgs());
-    }
-    protected virtual void OnChanged(ChangedEventArgs e) {
-      if ((e.RegisterChangedObject(this)) && (Changed != null))
-        Changed(this, e);
+    public event EventHandler ToStringChanged;
+    protected virtual void OnToStringChanged() {
+      if (ToStringChanged != null)
+        ToStringChanged(this, EventArgs.Empty);
     }
 
@@ -98,8 +95,4 @@
       base.OnCollectionReset(items, oldItems);
     }
-    protected override void OnPropertyChanged(string propertyName) {
-      base.OnPropertyChanged(propertyName);
-      OnChanged();
-    }
 
     private void RegisterItemEvents(IEnumerable<T> items) {
@@ -108,5 +101,4 @@
           item.NameChanging += new EventHandler<CancelEventArgs<string>>(Item_NameChanging);
           item.NameChanged += new EventHandler(Item_NameChanged);
-          item.Changed += new ChangedEventHandler(Item_Changed);
         }
       }
@@ -117,5 +109,4 @@
           item.NameChanging -= new EventHandler<CancelEventArgs<string>>(Item_NameChanging);
           item.NameChanged -= new EventHandler(Item_NameChanged);
-          item.Changed -= new ChangedEventHandler(Item_Changed);
         }
       }
@@ -129,7 +120,4 @@
       UpdateItemKey(item);
     }
-    private void Item_Changed(object sender, ChangedEventArgs e) {
-      OnChanged(e);
-    }
   }
 }
Index: trunk/sources/HeuristicLab.Core/3.3/OperatorGraph.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/OperatorGraph.cs	(revision 2931)
+++ trunk/sources/HeuristicLab.Core/3.3/OperatorGraph.cs	(revision 2932)
@@ -114,5 +114,4 @@
       if (InitialOperatorChanged != null)
         InitialOperatorChanged(this, EventArgs.Empty);
-      OnChanged();
     }
 
@@ -153,5 +152,4 @@
     private void RegisterOperatorsEvents() {
       if (operators != null) {
-        operators.Changed += new ChangedEventHandler(Operators_Changed);
         operators.ItemsAdded += new CollectionItemsChangedEventHandler<IOperator>(Operators_ItemsAdded);
         operators.ItemsRemoved += new CollectionItemsChangedEventHandler<IOperator>(Operators_ItemsRemoved);
@@ -175,5 +173,4 @@
           DeregisterOperatorEvents(op);
         }
-        operators.Changed -= new ChangedEventHandler(Operators_Changed);
         operators.ItemsAdded -= new CollectionItemsChangedEventHandler<IOperator>(Operators_ItemsAdded);
         operators.ItemsRemoved -= new CollectionItemsChangedEventHandler<IOperator>(Operators_ItemsRemoved);
@@ -240,7 +237,4 @@
       if (opParam.Value != null) Operators.Add(opParam.Value);
     }
-    private void Operators_Changed(object sender, ChangedEventArgs e) {
-      OnChanged(e);
-    }
     #endregion
   }
Index: trunk/sources/HeuristicLab.Core/3.3/ParameterizedNamedItem.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/ParameterizedNamedItem.cs	(revision 2931)
+++ trunk/sources/HeuristicLab.Core/3.3/ParameterizedNamedItem.cs	(revision 2932)
@@ -34,8 +34,6 @@
       get { return parameters; }
       private set {
-        if (parameters != null) parameters.Changed -= new ChangedEventHandler(Parameters_Changed);
         parameters = value;
         readOnlyParameters = null;
-        if (parameters != null) parameters.Changed += new ChangedEventHandler(Parameters_Changed);
       }
     }
@@ -83,8 +81,4 @@
       return clone;
     }
-
-    private void Parameters_Changed(object sender, ChangedEventArgs e) {
-      OnChanged(e);
-    }
   }
 }
Index: trunk/sources/HeuristicLab.Core/3.3/Scope.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/Scope.cs	(revision 2931)
+++ trunk/sources/HeuristicLab.Core/3.3/Scope.cs	(revision 2932)
@@ -41,13 +41,8 @@
     }
 
+    [Storable]
     private VariableCollection variables;
-    [Storable]
     public VariableCollection Variables {
       get { return variables; }
-      private set {
-        if (variables != null) variables.Changed -= new ChangedEventHandler(Variables_Changed);
-        variables = value;
-        if (variables != null) variables.Changed += new ChangedEventHandler(Variables_Changed);
-      }
     }
 
@@ -69,5 +64,5 @@
       : base("Anonymous") {
       parent = null;
-      Variables = new VariableCollection();
+      variables = new VariableCollection();
       SubScopes = new ScopeList();
     }
@@ -79,5 +74,5 @@
       : base(name) {
       parent = null;
-      Variables = new VariableCollection();
+      variables = new VariableCollection();
       SubScopes = new ScopeList();
     }
@@ -85,5 +80,5 @@
       : base(name, description) {
       parent = null;
-      Variables = new VariableCollection();
+      variables = new VariableCollection();
       SubScopes = new ScopeList();
     }
@@ -101,5 +96,5 @@
       clone.Name = Name;
       clone.Description = Description;
-      if (variables.Count > 0) clone.Variables = (VariableCollection)cloner.Clone(variables);
+      if (variables.Count > 0) clone.variables = (VariableCollection)cloner.Clone(variables);
       if (subScopes.Count > 0) clone.SubScopes = (ScopeList)cloner.Clone(subScopes);
       return clone;
@@ -113,5 +108,4 @@
         subScopes.ItemsReplaced += new CollectionItemsChangedEventHandler<IndexedItem<IScope>>(SubScopes_ItemsReplaced);
         subScopes.CollectionReset += new CollectionItemsChangedEventHandler<IndexedItem<IScope>>(SubScopes_CollectionReset);
-        subScopes.Changed += new ChangedEventHandler(SubScopes_Changed);
       }
     }
@@ -122,5 +116,4 @@
         subScopes.ItemsReplaced -= new CollectionItemsChangedEventHandler<IndexedItem<IScope>>(SubScopes_ItemsReplaced);
         subScopes.CollectionReset -= new CollectionItemsChangedEventHandler<IndexedItem<IScope>>(SubScopes_CollectionReset);
-        subScopes.Changed -= new ChangedEventHandler(SubScopes_Changed);
       }
     }
@@ -145,13 +138,4 @@
         item.Value.Parent = this;
     }
-    private void SubScopes_Changed(object sender, ChangedEventArgs e) {
-      OnChanged(e);
-    }
-    #endregion
-
-    #region Variables Events
-    private void Variables_Changed(object sender, ChangedEventArgs e) {
-      OnChanged(e);
-    }
     #endregion
   }
Index: trunk/sources/HeuristicLab.Core/3.3/Variable.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/Variable.cs	(revision 2931)
+++ trunk/sources/HeuristicLab.Core/3.3/Variable.cs	(revision 2932)
@@ -39,7 +39,7 @@
       set {
         if (this.value != value) {
-          if (this.value != null) this.value.Changed -= new ChangedEventHandler(Value_Changed);
+          if (this.value != null) this.value.ToStringChanged -= new EventHandler(Value_ToStringChanged);
           this.value = value;
-          if (this.value != null) this.value.Changed += new ChangedEventHandler(Value_Changed);
+          if (this.value != null) this.value.ToStringChanged += new EventHandler(Value_ToStringChanged);
           OnValueChanged();
         }
@@ -72,10 +72,10 @@
       : base(name) {
       this.value = value;
-      if (this.value != null) this.value.Changed += new ChangedEventHandler(Value_Changed);
+      if (this.value != null) this.value.ToStringChanged += new EventHandler(Value_ToStringChanged);
     }
     public Variable(string name, string description, IItem value)
       : base(name, description) {
       this.value = value;
-      if (this.value != null) this.value.Changed += new ChangedEventHandler(Value_Changed);
+      if (this.value != null) this.value.ToStringChanged += new EventHandler(Value_ToStringChanged);
     }
 
@@ -110,9 +110,8 @@
       if (ValueChanged != null)
         ValueChanged(this, EventArgs.Empty);
-      OnChanged();
     }
 
-    private void Value_Changed(object sender, ChangedEventArgs e) {
-      OnChanged(e);
+    private void Value_ToStringChanged(object sender, EventArgs e) {
+      OnToStringChanged();
     }
   }
