anchor.diff:  
                   let flags = parseFlagCsv <| reader.["flags"]
   
  -                if reader.IsEmptyElement || reader.Read() then ()
  +                if ObjectFlags.hasFlag flags ObjectFlags.IsSequenceHeader then
  +                    isAtEmptySequenceHeader <- reader.IsEmptyElement
  +
  +                if reader.IsEmptyElement || reader.Read () then ()
                   else
                       raise <| new EndOfStreamException()
   
                   flags
   
  -            member __.EndReadObject() = 
  +            member __.EndReadObject() =
                   if reader.IsEmptyElement then
                       let _ = reader.Read() in ()
                   else
                       reader.ReadEndElement()
   
  -            member __.PreferLengthPrefixInSequences = true
  -            member __.ReadNextSequenceElement () = reader.NodeType <> XmlNodeType.EndElement
  +            member __.PreferLengthPrefixInSequences = false
  +            member __.ReadNextSequenceElement () = 
  +                if isAtEmptySequenceHeader then
  +                    isAtEmptySequenceHeader <- false
  +                    false
  +                else
  +                    reader.NodeType <> XmlNodeType.EndElement
   
               member __.ReadBoolean tag = readElementName reader tag ; reader.ReadElementContentAsBoolean()
   
  
positive.code:                     reader.Read() |> ignore
                      null
                  else
                      let length = reader.GetAttribute("length") |> int
                      let bytes = Array.zeroCreate<byte> length
                      do reader.Read() |> ignore
                      if length > 0 then
  
negative.code: 
          let reader = XmlReader.Create(textReader, settings)
  
          let mutable isAtEmptySequenceHeader = false
  
          interface IPickleFormatReader with
              
              member __.BeginReadRoot (tag : string) =
  