Index: branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Bool2XmlSerializer.cs
===================================================================
--- branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Bool2XmlSerializer.cs	(revision 10041)
+++ branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Bool2XmlSerializer.cs	(revision 11594)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Byte2XmlSerializer.cs
===================================================================
--- branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Byte2XmlSerializer.cs	(revision 10041)
+++ branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Byte2XmlSerializer.cs	(revision 11594)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Char2XmlFormatter.cs
===================================================================
--- branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Char2XmlFormatter.cs	(revision 10041)
+++ branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Char2XmlFormatter.cs	(revision 11594)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -20,4 +20,7 @@
 #endregion
 
+using System;
+using System.Text;
+using System.Text.RegularExpressions;
 using HeuristicLab.Persistence.Core;
 using HeuristicLab.Persistence.Interfaces;
@@ -27,12 +30,24 @@
   internal sealed class Char2XmlSerializer : PrimitiveSerializerBase<char, XmlString> {
 
+    private static readonly Regex base64Regex = new Regex("<Base64>(.+)</Base64>");
+
+    private static bool IsSpecial(char c) {
+      return c <= 0x1F && c != 0x9 && c != 0xA && c != 0xD;
+    }
+
+    private static string ToBase64String(char c) {
+      return string.Format("<Base64>{0}</Base64>", Convert.ToBase64String(Encoding.ASCII.GetBytes(new[] {c})));
+    }
+
     public override XmlString Format(char c) {
-      return new XmlString(new string(c, 1));
+      return new XmlString(IsSpecial(c) ? ToBase64String(c) : new string(c, 1));
     }
 
     public override char Parse(XmlString x) {
-      if (x.Data.Length != 1)
-        throw new PersistenceException("Invalid character format, XML string length != 1");
-      return x.Data[0];
+      if (x.Data.Length <= 1) return x.Data[0];
+      var m = base64Regex.Match(x.Data);
+      if (m.Success)
+        return Encoding.ASCII.GetString(Convert.FromBase64String(m.Groups[1].Value))[0];
+      throw new PersistenceException("Invalid character format, XML string length != 1");
     }
   }
Index: branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/DateTime2XmlSerializer.cs
===================================================================
--- branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/DateTime2XmlSerializer.cs	(revision 10041)
+++ branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/DateTime2XmlSerializer.cs	(revision 11594)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Decimal2XmlSerializer.cs
===================================================================
--- branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Decimal2XmlSerializer.cs	(revision 10041)
+++ branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Decimal2XmlSerializer.cs	(revision 11594)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Double2XmlSerializer.cs
===================================================================
--- branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Double2XmlSerializer.cs	(revision 10041)
+++ branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Double2XmlSerializer.cs	(revision 11594)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Float2XmlSerializer.cs
===================================================================
--- branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Float2XmlSerializer.cs	(revision 10041)
+++ branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Float2XmlSerializer.cs	(revision 11594)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Guid2XmlSerializer.cs
===================================================================
--- branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Guid2XmlSerializer.cs	(revision 10041)
+++ branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Guid2XmlSerializer.cs	(revision 11594)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Int2XmlSerializer.cs
===================================================================
--- branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Int2XmlSerializer.cs	(revision 10041)
+++ branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Int2XmlSerializer.cs	(revision 11594)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Long2XmlSerializer.cs
===================================================================
--- branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Long2XmlSerializer.cs	(revision 10041)
+++ branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Long2XmlSerializer.cs	(revision 11594)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/PrimitiveXmlSerializerBase.cs
===================================================================
--- branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/PrimitiveXmlSerializerBase.cs	(revision 10041)
+++ branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/PrimitiveXmlSerializerBase.cs	(revision 11594)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/SByte2XmlSerializer.cs
===================================================================
--- branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/SByte2XmlSerializer.cs	(revision 10041)
+++ branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/SByte2XmlSerializer.cs	(revision 11594)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Short2XmlSerializer.cs
===================================================================
--- branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Short2XmlSerializer.cs	(revision 10041)
+++ branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Short2XmlSerializer.cs	(revision 11594)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/SimpleNumber2XmlSerializerBase.cs
===================================================================
--- branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/SimpleNumber2XmlSerializerBase.cs	(revision 10041)
+++ branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/SimpleNumber2XmlSerializerBase.cs	(revision 11594)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/String2XmlSerializer.cs
===================================================================
--- branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/String2XmlSerializer.cs	(revision 10041)
+++ branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/String2XmlSerializer.cs	(revision 11594)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -20,8 +20,8 @@
 #endregion
 
+using System;
 using System.Text;
 using System.Text.RegularExpressions;
 using HeuristicLab.Persistence.Core;
-
 
 namespace HeuristicLab.Persistence.Default.Xml.Primitive {
@@ -42,8 +42,18 @@
       sb.Append(s.Replace("]]>", "]]]]><![CDATA[>"));
       sb.Append("]]>");
-      return new XmlString(sb.ToString());
+      s = special.Replace(sb.ToString(), m => ToBase64Tag(m.Value));
+      return new XmlString(s);
     }
 
-    private static Regex re = new Regex(@"<!\[CDATA\[((?:[^]]|\](?!\]>))*)\]\]>", RegexOptions.Singleline);
+    private static readonly Regex re = new Regex(@"<!\[CDATA\[((?:[^]]|\](?!\]>))*)\]\]>|<Base64>([^<]*)</Base64>", RegexOptions.Singleline);
+    private static readonly Regex special = new Regex(@"[\x00-\x08\x0b\x0c\x0e-\x1f]+", RegexOptions.Singleline);
+
+    private static string ToBase64Tag(string s) {
+      return new StringBuilder()
+        .Append("]]><Base64>")
+        .Append(Convert.ToBase64String(Encoding.ASCII.GetBytes(s)))
+        .Append("</Base64><![CDATA[")
+        .ToString();
+    }
 
     /// <summary>
@@ -55,5 +65,9 @@
       StringBuilder sb = new StringBuilder();
       foreach (Match m in re.Matches(x.Data)) {
-        sb.Append(m.Groups[1]);
+        if (m.Groups[1].Success)
+          sb.Append(m.Groups[1].Value);
+        else if (m.Groups[2].Success) {
+          sb.Append(Encoding.ASCII.GetString(Convert.FromBase64String(m.Groups[2].Value)));
+        }
       }
       string result = sb.ToString();
Index: branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/System.Drawing/Bitmap2XmlSerializer.cs
===================================================================
--- branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/System.Drawing/Bitmap2XmlSerializer.cs	(revision 10041)
+++ branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/System.Drawing/Bitmap2XmlSerializer.cs	(revision 11594)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/System.Drawing/Font2XmlSerializer.cs
===================================================================
--- branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/System.Drawing/Font2XmlSerializer.cs	(revision 10041)
+++ branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/System.Drawing/Font2XmlSerializer.cs	(revision 11594)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -28,5 +28,5 @@
     public override XmlString Format(Font font) {
       return new XmlString(string.Format("{0};{1};{2};{3};{4};{5}",
-        font.FontFamily.Name,
+        GetFontFamilyName(font.FontFamily),
         Float2XmlSerializer.FormatG8(font.Size),
         font.Style,
@@ -39,5 +39,5 @@
       string[] tokens = fontData.Data.Split(';');
       return new Font(
-        tokens[0],
+        GetFontFamily(tokens[0]),
         Float2XmlSerializer.ParseG8(tokens[1]),
         (FontStyle)Enum.Parse(typeof(FontStyle), tokens[2]),
@@ -46,4 +46,23 @@
         bool.Parse(tokens[5]));
     }
+
+    public const string GENERIC_MONOSPACE_NAME = "_GenericMonospace";
+    public const string GENERIC_SANS_SERIF_NAME = "_GenericSansSerif";
+    public const string GENERIC_SERIF_NAME = "_GenericSerif";
+
+    public static FontFamily GetFontFamily(string name) {
+      if (name == GENERIC_MONOSPACE_NAME) return FontFamily.GenericMonospace;
+      if (name == GENERIC_SANS_SERIF_NAME) return FontFamily.GenericSansSerif;
+      if (name == GENERIC_SERIF_NAME) return FontFamily.GenericSerif;
+      return new FontFamily(name);
+    }
+
+    public static string GetFontFamilyName(FontFamily ff) {
+      if (ff.Equals(FontFamily.GenericMonospace)) return GENERIC_MONOSPACE_NAME;
+      if (ff.Equals(FontFamily.GenericSansSerif)) return GENERIC_SANS_SERIF_NAME;
+      if (ff.Equals(FontFamily.GenericSerif)) return GENERIC_SERIF_NAME;
+      return ff.Name;
+    }
+
   }
 }
Index: branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/TimeSpan2XmlSerializer.cs
===================================================================
--- branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/TimeSpan2XmlSerializer.cs	(revision 10041)
+++ branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/TimeSpan2XmlSerializer.cs	(revision 11594)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/UInt2XmlSerializer.cs
===================================================================
--- branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/UInt2XmlSerializer.cs	(revision 10041)
+++ branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/UInt2XmlSerializer.cs	(revision 11594)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/ULong2XmlSerializer.cs
===================================================================
--- branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/ULong2XmlSerializer.cs	(revision 10041)
+++ branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/ULong2XmlSerializer.cs	(revision 11594)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/UShort2XmlSerializer.cs
===================================================================
--- branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/UShort2XmlSerializer.cs	(revision 10041)
+++ branches/Breadcrumbs/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/UShort2XmlSerializer.cs	(revision 11594)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
