anchor.diff:      begin
           if Color <> -1 then
             Transparent := TrGif;
  -        Image := ThtBitmapImage.Create(Bitmap, Transparent, Color, False);
  +        Image := ThtBitmapImage.Create(Bitmap, Transparent, Color, OwnsBitmap);
       end;
   
       if Image <> nil then {put in Cache}
  
positive.code:     MargArray: ThtMarginArray;
      MargArrayO: ThtVMarginArray;
      NoMask: boolean;
      BreakBefore, BreakAfter, KeepIntact: boolean;
  
      constructor Create(Parent: TTableBlock; AVAlign: ThtAlignmentStyle; Attr: TAttributeList; Prop: TProperties);
      constructor CreateCopy(Parent: TBlock; T: TCellObj);
  
negative.code:   try
      if IsVisible and (Cell.Count > 0) then
      begin
        Rslt := 0;
        Rgn := 0;
        SaveRgn := 0;
        if HideOverflow then
        begin
        {clip cell contents to prevent overflow.  First check to see if there is
         already a clip region}
          SaveRgn := CreateRectRgn(0, 0, 1, 1);
          Rslt := GetClipRgn(Canvas.Handle, SaveRgn); {Rslt = 1 for existing region, 0 for none}
        {Form the region for this cell}
          GetWindowOrgEx(Canvas.Handle, Point); {when scrolling or animated Gifs, canvas may not start at X=0, Y=0}
          if not Cell.Document.Printing then
            if IsWin95 then
              Rgn := CreateRectRgn(BL - Point.X, Max(BT - Point.Y, -32000), BR - Point.X, Min(BB - Point.Y, 32000))
            else
              Rgn := CreateRectRgn(BL - Point.X, BT - Point.Y, BR - Point.X, BB - Point.Y)
          else
          begin
            GetViewportExtEx(Canvas.Handle, SizeV);
            GetWindowExtEx(Canvas.Handle, SizeW);
            HF := (SizeV.cx / SizeW.cx); {Horizontal adjustment factor}
            VF := (SizeV.cy / SizeW.cy); {Vertical adjustment factor}
            if IsWin95 then
              Rgn := CreateRectRgn(Round(HF * (BL - Point.X) - 1), Max(Round(VF * (BT - Point.Y) - 1), -32000), Round(HF * (X + Wd - Point.X) + 1), Min(Round(VF * (YO + Ht - Point.Y)), 32000))
            else
              Rgn := CreateRectRgn(Round(HF * (BL - Point.X) - 1), Round(VF * (BT - Point.Y) - 1), Round(HF * (X + Wd - Point.X) + 1), Round(VF * (YO + Ht - Point.Y)));
          end;
          if Rslt = 1 then {if there was a region, use the intersection with this region}
            CombineRgn(Rgn, Rgn, SaveRgn, Rgn_And);
          SelectClipRgn(Canvas.Handle, Rgn);
        end;
        try
          Cell.Draw(Canvas, ARect, Wd - HzSpace - CellSpacingHorz,
            X + FPad.Left + FBrd.Left + CellSpacingHorz,
            Y + FPad.Top + FBrd.Top + YIndent, ARect.Left, 0); {possibly should be IRgn.LfEdge}
        finally
          if HideOverflow then
          begin
            if Rslt = 1 then {restore any previous clip region}
              SelectClipRgn(Canvas.Handle, SaveRgn)
            else
              SelectClipRgn(Canvas.Handle, 0);
            DeleteObject(Rgn);
            DeleteObject(SaveRgn);
          end;
        end;
      end;
    except
  