A: 

I have resigned to a tardy solution for now, but if any of you finds a clean one, please post it.

I have used a Replace call of Stringbuilder to remove the undesired characters.

    private string GetXaml(FlowDocument document)
    {
        if (document == null) return String.Empty;
        else
        {

            StringBuilder sb = new StringBuilder();
            using (XmlWriter xw = XmlWriter.Create(sb))
            {
                XamlDesignerSerializationManager sm = new XamlDesignerSerializationManager(xw);
                sm.XamlWriterMode = XamlWriterMode.Expression;

                XamlWriter.Save(document, sm);
            }
            sb.Replace("{}", "");
            return sb.ToString();
        }

    }

I have a feeling that when the xamlwriter encounters "{" character - it intreprets that as a binding expression. I wonder what the escape sequence is for this character.

Note - I tried changing the

XamlWriterMode from XamlWriterMode.Expression to XamlWriterMode.Value

with no joy.

Krishna
{} is a [XAML escape sequence](http://msdn.microsoft.com/en-us/library/ms744986.aspx) so what you are seeing is perfectly valid. The real question is: why does this bother you? Your intention is to (de)serialize a FlowDocument into/from XAML which is obviously working for you. So why make a fuss about {}? You should not try to interpret serialized content.
wpfwannabe
the content I am trying to serialise is C# code. when I reload the serialised content back to the richtext box, the new set of {} would make my code un-compilable. The next iterations of any serialisations would add a new set of {} for each { encountered. Please note that <b>(FlowDocument)XamlReader.Parse(xamlText); </b> is not removing these characters. I understand that serialised bit, but when deserialising - should the reader not remove the escape sequence
Krishna