Index: trunk/sources/HeuristicLab.Parameters/3.3/FixedValueParameter.cs
===================================================================
--- trunk/sources/HeuristicLab.Parameters/3.3/FixedValueParameter.cs	(revision 5809)
+++ trunk/sources/HeuristicLab.Parameters/3.3/FixedValueParameter.cs	(revision 5843)
@@ -31,5 +31,5 @@
   [Item("FixedValueParameter", "A parameter whose value is defined in the parameter itself and cannot be set.")]
   [StorableClass]
-  public class FixedValueParameter<T> : ValueParameter<T>, IFixedValueParameter<T> where T : class,IItem {
+  public class FixedValueParameter<T> : ValueParameter<T>, IFixedValueParameter<T> where T : class,IItem, new() {
 
     public override T Value {
@@ -44,10 +44,11 @@
     protected FixedValueParameter(FixedValueParameter<T> original, Cloner cloner) : base(original, cloner) { }
 
-    public FixedValueParameter(string name) : base(name, default(T)) { }
-    public FixedValueParameter(string name, bool getsCollected) : base(name, default(T), getsCollected) { }
+    public FixedValueParameter() : base() { }
+    public FixedValueParameter(string name) : base(name) { }
+    public FixedValueParameter(string name, bool getsCollected) : base(name, getsCollected) { }
     public FixedValueParameter(string name, T value) : base(name, value) { }
     public FixedValueParameter(string name, T value, bool getsCollected) : base(name, value, getsCollected) { }
-    public FixedValueParameter(string name, string description) : base(name, description, default(T)) { }
-    public FixedValueParameter(string name, string description, bool getsCollected) : base(name, description, default(T), getsCollected) { }
+    public FixedValueParameter(string name, string description) : base(name, description) { }
+    public FixedValueParameter(string name, string description, bool getsCollected) : base(name, description, getsCollected) { }
     public FixedValueParameter(string name, string description, T value) : base(name, description, value) { }
     public FixedValueParameter(string name, string description, T value, bool getsCollected) : base(name, description, value, getsCollected) { }
Index: trunk/sources/HeuristicLab.Parameters/3.3/ValueParameter.cs
===================================================================
--- trunk/sources/HeuristicLab.Parameters/3.3/ValueParameter.cs	(revision 5809)
+++ trunk/sources/HeuristicLab.Parameters/3.3/ValueParameter.cs	(revision 5843)
@@ -21,4 +21,5 @@
 
 using System;
+using System.Reflection;
 using HeuristicLab.Common;
 using HeuristicLab.Core;
@@ -43,13 +44,21 @@
     protected ValueParameter(bool deserializing) : base(deserializing) { }
     protected ValueParameter(ValueParameter<T> original, Cloner cloner) : base(original, cloner) { }
+
     public ValueParameter() : base() { }
-    public ValueParameter(string name) : base(name) { }
-    public ValueParameter(string name, bool getsCollected) : base(name, getsCollected) { }
+    public ValueParameter(string name) : base(name) { base.Value = CreateDefaultValue(); }
+    public ValueParameter(string name, bool getsCollected) : base(name, getsCollected) { base.Value = CreateDefaultValue(); }
     public ValueParameter(string name, T value) : base(name, value) { }
     public ValueParameter(string name, T value, bool getsCollected) : base(name, value, getsCollected) { }
-    public ValueParameter(string name, string description) : base(name, description) { }
-    public ValueParameter(string name, string description, bool getsCollected) : base(name, description, getsCollected) { }
+    public ValueParameter(string name, string description) : base(name, description) { base.Value = CreateDefaultValue(); }
+    public ValueParameter(string name, string description, bool getsCollected) : base(name, description, getsCollected) { base.Value = CreateDefaultValue(); }
     public ValueParameter(string name, string description, T value) : base(name, description, value) { }
     public ValueParameter(string name, string description, T value, bool getsCollected) : base(name, description, value, getsCollected) { }
+
+    protected T CreateDefaultValue() {
+      ConstructorInfo defaultConstructor = typeof(T).GetConstructor(Type.EmptyTypes);
+      if (defaultConstructor != null)
+        return (T)defaultConstructor.Invoke(new object[0]);
+      return null;
+    }
 
     public override IDeepCloneable Clone(Cloner cloner) {
