anchor.diff:            begin
               SS := UTF8Copy(S, Si + 1, UTF8Length(S) - Si);
               R.SetRect(X+(Si * FChrW), Y, (UTF8Length(SS) * FChrW), FChrH);
  -            Canvas.XORFillRectangle(fpgColorToRGB(clSelection) xor $FFFFFF, R);
  +            Canvas.FillRectangle(R);
  +            Canvas.DrawText(R, SS);
             end
             else
             begin
  
positive.code:   if AllowDraw then
    begin
      Canvas.DrawText(R, S);
      if FSelected then
      begin
        if (ALineIndex > StartNo) and (ALineIndex < EndNo) then     // whole line is selected
        begin
          R.SetRect(X, Y, UTF8Length(S) * FChrW, FChrH);
          Canvas.XORFillRectangle(fpgColorToRGB(clSelection) xor $FFFFFF, R);
        end
        else
        begin
  
negative.code:           else
              SS := UTF8Copy(S, Si + 1, Ei - Si);
            R.SetRect(X+(Si * FChrW), Y, (UTF8Length(SS) * FChrW), FChrH);
            Canvas.FillRectangle(R);
            Canvas.DrawText(R, SS);
          end
          else
          begin
  