anchor.diff:     begin
         result:= EOFchr;
         if( not UngetQ.IsEmpty()) then begin
  -         UngetQ.StartEnumeration();
  -         if( UngetQ.Next()) then begin
  -            result:= UngetQ.GetCurrent();
  -         end;
  +         result:= UngetQ.Queue;
  +         UngetQ.Head:= result; // Put it back
         end else begin
            if( ChrBuffPos = ChrBuffLen) then begin
               // Read another block into the buffer
  
positive.code: 
  procedure tChrSource.Init();
     begin
        UngetQ:= tCharList.Create( 4, 'UngetQ');
  
        ChrBuffLen:= Stream.Read( ChrBuff, ParserBufferSize);
        ChrBuffPos:= 0;
  
negative.code:          MyPosition:= 0;
           MyIndent:= '';
        {$endif}
  //      RemoveBom(); // Remove unicode Byte Order Marker if it exists.
     end; // Init()
  
  
  