anchor.diff:  
     SelectFont( Font, 1 );
     FCurrentFontSpec := FontSpec;
  -  FCurrentFont.Free;
  +  if FCurrentFont <> Font then
  +    FCurrentFont.Free;
     FCurrentFont := Font;
   ProfileEvent('DEBUG:  TCanvasFontManager.SetFont <<<<');
   end;
  
positive.code:     // ack! Pfffbt! Couldn't find the font.
  
      // Try to get the default font
  //    writeln('---------- here goes nothing -------------');
      Font := GetFont( FDefaultFontSpec );
      if Font = nil then
      begin
  
negative.code:   lDefaultFontSpec: TFontSpec;
  begin
  ProfileEvent('DEBUG:  TCanvasFontManager.SetFont >>>>');
    // we don't need this any more, because we check FCurrentFont <> Font further down
    // We also make sure we always set Canvas.Font - this fixes large display of Grids or Sample Code in Courier New font
    //if (FCurrentFontSpec.FaceName = FontSpec.FaceName) and
    //   (FCurrentFontSpec.PointSize = FontSpec.PointSize) and
    //   (FCurrentFontSpec.Attributes = FontSpec.Attributes) then
    //   //same font
    //begin
    //  exit;
    //end;
  
    Font := GetFont( FontSpec );
  
  