anchor.diff:  procedure TmCSVBuilder.AppendRow;
   var
     s: RawByteString;
  +  fs : TStream;
   begin
  -  CheckFileStream;
  +  fs := CheckFileStream;
     FCurrentRow:= FCurrentRow + sLineBreak;
     if FUTF8 then
     begin
       s := UTF8Encode(FCurrentRow);
  -    FFileStream.Write(s[1], Length(s));
  +    fs.Write(s[1], Length(s));
     end
     else
  -    FFilestream.Write(FCurrentRow[1], Length(FCurrentRow));
  +    fs.Write(FCurrentRow[1], Length(FCurrentRow));
     FCurrentRow:= '';
   end;
   
  
positive.code:     property LineEnding: String read FLineEnding write FLineEnding;
      property FileName: String read FFilename write FFilename;
      property UTF8: Boolean read FUTF8 write FUTF8;
    end;
  
  implementation
  
negative.code: 
  { TmCSVBuilder }
  
  function TmCSVBuilder.CheckFileStream : TStream;
  begin
    if Assigned(FExtStream) then
      Result := FExtStream
    else if Assigned(FOwnedFileStream) then
      Result := FOwnedFileStream
    else
      raise Exception.Create('Missing file stream. Call StartWrite before.');
  end;
  
  