Index: /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableArray.cs
===================================================================
--- /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableArray.cs	(revision 3001)
+++ /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableArray.cs	(revision 3002)
@@ -33,4 +33,13 @@
     private IObservableArray<T> array;
 
+    #region Persistence
+    private ReadOnlyObservableArray() { }
+
+    [StorableHook(HookType.AfterDeserialization)]
+    private void PostDeserializationHook() {
+      RegisterEvents();
+    }
+    #endregion
+
     #region Properties
     public int Length {
@@ -53,8 +62,14 @@
     #endregion
 
+    
+
     #region Constructors
     public ReadOnlyObservableArray(IObservableArray<T> array) {
       if (array == null) throw new ArgumentNullException();
       this.array = array;
+      RegisterEvents();
+    }
+
+    private void RegisterEvents() {
       array.ItemsReplaced += new CollectionItemsChangedEventHandler<IndexedItem<T>>(array_ItemsReplaced);
       array.ItemsMoved += new CollectionItemsChangedEventHandler<IndexedItem<T>>(array_ItemsMoved);
Index: /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableCollection.cs
===================================================================
--- /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableCollection.cs	(revision 3001)
+++ /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableCollection.cs	(revision 3002)
@@ -33,4 +33,13 @@
     private IObservableCollection<T> collection;
 
+    #region persistence
+    private ReadOnlyObservableCollection() { }
+
+    [StorableHook(HookType.AfterDeserialization)]
+    private void PostDeserializationHook() {
+      RegisterEvents();
+    }
+    #endregion
+
     #region Properties
     public int Count {
@@ -46,4 +55,8 @@
       if (collection == null) throw new ArgumentNullException();
       this.collection = collection;
+      RegisterEvents();
+    }
+
+    private void RegisterEvents() {
       collection.ItemsAdded += new CollectionItemsChangedEventHandler<T>(collection_ItemsAdded);
       collection.ItemsRemoved += new CollectionItemsChangedEventHandler<T>(collection_ItemsRemoved);
Index: /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableDictionary.cs
===================================================================
--- /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableDictionary.cs	(revision 3001)
+++ /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableDictionary.cs	(revision 3002)
@@ -33,4 +33,13 @@
     private IObservableDictionary<TKey, TValue> dict;
 
+    #region persistence
+    private ReadOnlyObservableDictionary() { }
+
+    [StorableHook(HookType.AfterDeserialization)]
+    private void PostDeserizlationHook() {
+      RegisterEvents();
+    }
+    #endregion
+
     #region Properties
     public ICollection<TKey> Keys {
@@ -60,4 +69,8 @@
       if (dictionary == null) throw new ArgumentNullException();
       dict = dictionary;
+      RegisterEvents();
+    }
+
+    private void RegisterEvents() {
       dict.ItemsAdded += new CollectionItemsChangedEventHandler<KeyValuePair<TKey, TValue>>(dict_ItemsAdded);
       dict.ItemsRemoved += new CollectionItemsChangedEventHandler<KeyValuePair<TKey, TValue>>(dict_ItemsRemoved);
Index: /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableKeyedCollection.cs
===================================================================
--- /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableKeyedCollection.cs	(revision 3001)
+++ /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableKeyedCollection.cs	(revision 3002)
@@ -33,4 +33,13 @@
     private IObservableKeyedCollection<TKey, TItem> collection;
 
+    #region persistence
+    private ReadOnlyObservableKeyedCollection() { }
+
+    [StorableHook(HookType.AfterDeserialization)]
+    private void PostDeserizlationHook() {
+      RegisterEvents();
+    }
+    #endregion
+
     #region Properties
     public int Count {
@@ -52,4 +61,8 @@
       if (collection == null) throw new ArgumentNullException();
       this.collection = collection;
+      RegisterEvents();
+    }
+
+    private void RegisterEvents() {
       collection.ItemsAdded += new CollectionItemsChangedEventHandler<TItem>(collection_ItemsAdded);
       collection.ItemsRemoved += new CollectionItemsChangedEventHandler<TItem>(collection_ItemsRemoved);
Index: /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableList.cs
===================================================================
--- /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableList.cs	(revision 3001)
+++ /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableList.cs	(revision 3002)
@@ -33,4 +33,13 @@
     private IObservableList<T> list;
 
+    #region persistence
+    private ReadOnlyObservableList() { }
+
+    [StorableHook(HookType.AfterDeserialization)]
+    private void PostDeserizlationHook() {
+      RegisterEvents();
+    }
+    #endregion
+
     #region Properties
     public int Count {
@@ -54,4 +63,8 @@
       if (list == null) throw new ArgumentNullException();
       this.list = list;
+      RegisterEvents();
+    }
+
+    private void RegisterEvents() {
       list.ItemsAdded += new CollectionItemsChangedEventHandler<IndexedItem<T>>(list_ItemsAdded);
       ((IObservableCollection<T>)list).ItemsAdded += new CollectionItemsChangedEventHandler<T>(list_ItemsAdded);
Index: /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableSet.cs
===================================================================
--- /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableSet.cs	(revision 3001)
+++ /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableSet.cs	(revision 3002)
@@ -33,4 +33,13 @@
     private IObservableSet<T> set;
 
+    #region persistence
+    private ReadOnlyObservableSet() { }
+
+    [StorableHook(HookType.AfterDeserialization)]
+    private void PostDeserizlationHook() {
+      RegisterEvents();
+    }
+    #endregion
+
     #region Properties
     public int Count {
@@ -46,4 +55,8 @@
       if (set == null) throw new ArgumentNullException();
       this.set = set;
+      RegisterEvents();
+    }
+
+    private void RegisterEvents() {
       set.ItemsAdded += new CollectionItemsChangedEventHandler<T>(set_ItemsAdded);
       set.ItemsRemoved += new CollectionItemsChangedEventHandler<T>(set_ItemsRemoved);
Index: /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/DebugString.cs
===================================================================
--- /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/DebugString.cs	(revision 3001)
+++ /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/DebugString.cs	(revision 3002)
@@ -16,4 +16,6 @@
     public string Data { get; set; }
 
+    private DebugString() { }
+
     public DebugString(string s) {
       Data = s;
Index: /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/XmlString.cs
===================================================================
--- /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/XmlString.cs	(revision 3001)
+++ /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/XmlString.cs	(revision 3002)
@@ -12,4 +12,6 @@
     public string Data { get; private set; }
 
+    private XmlString() { }
+
     public XmlString(string data) {
       Data = data;
