Index: branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Auxiliary/TypeName.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Auxiliary/TypeName.cs	(revision 14928)
+++ branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Auxiliary/TypeName.cs	(revision 15018)
@@ -104,5 +104,5 @@
 
     [StorableConstructor]
-    protected TypeName(bool deserializing) { }
+    protected TypeName(StorableConstructorFlag deserializing) { }
     /// <summary>
     /// Initializes a new instance of the <see cref="TypeName"/> class.
Index: branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Core/FormatBase.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Core/FormatBase.cs	(revision 14928)
+++ branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Core/FormatBase.cs	(revision 15018)
@@ -44,5 +44,5 @@
 
     [StorableConstructor]
-    protected FormatBase(bool deserializing) { }
+    protected FormatBase(StorableConstructorFlag deserializing) { }
     protected FormatBase() { }
 
Index: branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/ArraySerializer.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/ArraySerializer.cs	(revision 14928)
+++ branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/ArraySerializer.cs	(revision 15018)
@@ -32,5 +32,5 @@
 
     [StorableConstructor]
-    private ArraySerializer(bool deserializing) { }
+    private ArraySerializer(StorableConstructorFlag deserializing) { }
     public ArraySerializer() { }
 
Index: branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/CompactNumberArray2StringSerializer.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/CompactNumberArray2StringSerializer.cs	(revision 14928)
+++ branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/CompactNumberArray2StringSerializer.cs	(revision 15018)
@@ -82,5 +82,5 @@
 
     [StorableConstructor]
-    private CompactNumberArray2StringSerializer(bool deserializing) { }
+    private CompactNumberArray2StringSerializer(StorableConstructorFlag deserializing) { }
     public CompactNumberArray2StringSerializer() { }
 
Index: branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/ConcreteDictionarySerializer.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/ConcreteDictionarySerializer.cs	(revision 14928)
+++ branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/ConcreteDictionarySerializer.cs	(revision 15018)
@@ -34,5 +34,5 @@
 
     [StorableConstructor]
-    private ConcreteDictionarySerializer(bool deserializing) { }
+    private ConcreteDictionarySerializer(StorableConstructorFlag deserializing) { }
     public ConcreteDictionarySerializer() { }
 
Index: branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/DictionarySerializer.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/DictionarySerializer.cs	(revision 14928)
+++ branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/DictionarySerializer.cs	(revision 15018)
@@ -34,5 +34,5 @@
 
     [StorableConstructor]
-    private DictionarySerializer(bool deserializing) { }
+    private DictionarySerializer(StorableConstructorFlag deserializing) { }
     public DictionarySerializer() { }
 
Index: branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/EnumSerializer.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/EnumSerializer.cs	(revision 14928)
+++ branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/EnumSerializer.cs	(revision 15018)
@@ -32,5 +32,5 @@
 
     [StorableConstructor]
-    private EnumSerializer(bool deserializing) { }
+    private EnumSerializer(StorableConstructorFlag deserializing) { }
     public EnumSerializer() { }
 
Index: branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/EnumerableSerializer.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/EnumerableSerializer.cs	(revision 14928)
+++ branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/EnumerableSerializer.cs	(revision 15018)
@@ -35,5 +35,5 @@
 
     [StorableConstructor]
-    private EnumerableSerializer(bool deserializing) { }
+    private EnumerableSerializer(StorableConstructorFlag deserializing) { }
     public EnumerableSerializer() { }
 
Index: branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/HashSetSerializer.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/HashSetSerializer.cs	(revision 14928)
+++ branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/HashSetSerializer.cs	(revision 15018)
@@ -35,5 +35,5 @@
 
     [StorableConstructor]
-    private HashSetSerializer(bool deserializing) { }
+    private HashSetSerializer(StorableConstructorFlag deserializing) { }
     public HashSetSerializer() { }
 
Index: branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/KeyValuePairSerializer.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/KeyValuePairSerializer.cs	(revision 14928)
+++ branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/KeyValuePairSerializer.cs	(revision 15018)
@@ -34,5 +34,5 @@
 
     [StorableConstructor]
-    private KeyValuePairSerializer(bool deserializing) { }
+    private KeyValuePairSerializer(StorableConstructorFlag deserializing) { }
     public KeyValuePairSerializer() { }
 
Index: branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/Number2StringSerializer.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/Number2StringSerializer.cs	(revision 14928)
+++ branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/Number2StringSerializer.cs	(revision 15018)
@@ -44,5 +44,5 @@
 
     [StorableConstructor]
-    private Number2StringSerializer(bool deserializing) { }
+    private Number2StringSerializer(StorableConstructorFlag deserializing) { }
     public Number2StringSerializer() { }
 
Index: branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/NumberEnumerable2StringSerializer.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/NumberEnumerable2StringSerializer.cs	(revision 14928)
+++ branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/NumberEnumerable2StringSerializer.cs	(revision 15018)
@@ -35,5 +35,5 @@
 
     [StorableConstructor]
-    private NumberEnumerable2StringSerializer(bool deserializing) { }
+    private NumberEnumerable2StringSerializer(StorableConstructorFlag deserializing) { }
     public NumberEnumerable2StringSerializer() { }
 
Index: branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/QueueSerializer.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/QueueSerializer.cs	(revision 14928)
+++ branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/QueueSerializer.cs	(revision 15018)
@@ -34,5 +34,5 @@
 
     [StorableConstructor]
-    private QueueSerializer(bool deserializing) { }
+    private QueueSerializer(StorableConstructorFlag deserializing) { }
     public QueueSerializer() { }
 
Index: branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/StackSerializer.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/StackSerializer.cs	(revision 14928)
+++ branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/StackSerializer.cs	(revision 15018)
@@ -34,5 +34,5 @@
 
     [StorableConstructor]
-    private StackSerializer(bool deserializing) { }
+    private StackSerializer(StorableConstructorFlag deserializing) { }
     public StackSerializer() { }
 
Index: branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/Storable/StorableSerializer.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/Storable/StorableSerializer.cs	(revision 14928)
+++ branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/Storable/StorableSerializer.cs	(revision 15018)
@@ -50,5 +50,5 @@
 
     [StorableConstructor]
-    private StorableSerializer(bool deserializing) : this() { }
+    private StorableSerializer(StorableConstructorFlag deserializing) : this() { }
 
     #region ICompositeSerializer implementation
@@ -241,9 +241,12 @@
         .Where(ci => ci.GetCustomAttributes(typeof(StorableConstructorAttribute), false).Length > 0)) {
         if (ci.GetParameters().Length != 1 ||
-            ci.GetParameters()[0].ParameterType != typeof(bool))
-          throw new PersistenceException("StorableConstructor must have exactly one argument of type bool");
+            ci.GetParameters()[0].ParameterType != typeof(StorableConstructorFlag))
+          throw new PersistenceException("StorableConstructor must have exactly one argument of type StorableConstructorFlag");
         var dm = new DynamicMethod("", typeof(object), null, type, true);
         var ilgen = dm.GetILGenerator();
-        ilgen.Emit(OpCodes.Ldc_I4_1); // load true
+        var local = ilgen.DeclareLocal(typeof(StorableConstructorFlag));
+        ilgen.Emit(OpCodes.Ldloca_S, local);
+        ilgen.Emit(OpCodes.Initobj,typeof(StorableConstructorFlag)); // load default value for StorableConstructorFlag
+        ilgen.Emit(OpCodes.Ldloc_0);
         ilgen.Emit(OpCodes.Newobj, ci);
         ilgen.Emit(OpCodes.Ret);
Index: branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/StructSerializer.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/StructSerializer.cs	(revision 14928)
+++ branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/StructSerializer.cs	(revision 15018)
@@ -33,5 +33,5 @@
 
     [StorableConstructor]
-    private StructSerializer(bool deserializing) { }
+    private StructSerializer(StorableConstructorFlag deserializing) { }
     public StructSerializer() { }
 
Index: branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/TupleSerializer.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/TupleSerializer.cs	(revision 14928)
+++ branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/TupleSerializer.cs	(revision 15018)
@@ -34,5 +34,5 @@
 
     [StorableConstructor]
-    private TupleSerializer(bool deserializing) { }
+    private TupleSerializer(StorableConstructorFlag deserializing) { }
     public TupleSerializer() { }
 
Index: branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/TypeSerializer.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/TypeSerializer.cs	(revision 14928)
+++ branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/TypeSerializer.cs	(revision 15018)
@@ -33,5 +33,5 @@
 
     [StorableConstructor]
-    private TypeSerializer(bool deserializing) { }
+    private TypeSerializer(StorableConstructorFlag deserializing) { }
     public TypeSerializer() { }
 
Index: branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/DebugString/DebugString.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/DebugString/DebugString.cs	(revision 14928)
+++ branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/DebugString/DebugString.cs	(revision 15018)
@@ -39,5 +39,5 @@
 
     [StorableConstructor]
-    protected DebugString(bool deserializing) { }
+    protected DebugString(StorableConstructorFlag deserializing) { }
     private DebugString() { }
 
Index: branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/DebugString/DebugStringFormat.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/DebugString/DebugStringFormat.cs	(revision 14928)
+++ branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/DebugString/DebugStringFormat.cs	(revision 15018)
@@ -37,5 +37,5 @@
 
     [StorableConstructor]
-    protected DebugStringFormat(bool deserializing) : base(deserializing) { }
+    protected DebugStringFormat(StorableConstructorFlag deserializing) : base(deserializing) { }
     public DebugStringFormat() { }
   }
Index: branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/Xml/XmlFormat.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/Xml/XmlFormat.cs	(revision 14928)
+++ branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/Xml/XmlFormat.cs	(revision 15018)
@@ -38,5 +38,5 @@
 
     [StorableConstructor]
-    protected XmlFormat(bool deserializing) : base(deserializing) { }
+    protected XmlFormat(StorableConstructorFlag deserializing) : base(deserializing) { }
     public XmlFormat() { }
   }
Index: branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/Xml/XmlString.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/Xml/XmlString.cs	(revision 14928)
+++ branches/PersistenceReintegration/HeuristicLab.Persistence/3.3/Default/Xml/XmlString.cs	(revision 15018)
@@ -41,5 +41,5 @@
 
     [StorableConstructor]
-    protected XmlString(bool deserializing) { }
+    protected XmlString(StorableConstructorFlag deserializing) { }
     private XmlString() { }
 
