anchor.diff:                  Props[Index] := Source.Props[Index];
                   Originals[Index] := True;
                 end;
  -            FontFamily, FontSize, FontStyle, FontWeight, Color, BackgroundColor,
  -              TextDecoration, LetterSpacing:
  +
  +            TextDecoration:
  +              begin
  +                Originals[Index] := True;
  +                S1 := Props[Index];
  +                if (S1 = 'none') or (Length(S1) = 0) or (Source.Props[Index] = 'none') then
  +                  Props[Index] := Source.Props[Index]
  +                else if Pos(Source.Props[Index], S1) = 0 then
  +                  Props[Index] := S1 + SpcChar + Source.Props[Index];
  +                if InLink then
  +                begin
  +                  for I := LFont to HVFont do
  +                    with FIArray.Ar[I] do
  +                      if Props[Index] = 'none' then
  +                        iStyle := iStyle - [fsStrikeOut, fsUnderline]
  +                      else
  +                      begin
  +                        if Pos('underline', Props[Index]) > 0 then
  +                          Include(iStyle, fsUnderline);
  +                        if Pos('line-through', Props[Index]) > 0 then
  +                          Include(iStyle, fsStrikeOut);
  +                      end;
  +                end;
  +              end;
  +
  +            FontFamily, FontSize, FontStyle, FontWeight, Color, BackgroundColor, LetterSpacing:
                 begin
                   Originals[Index] := True;
                   Props[Index] := Source.Props[Index];
  
positive.code: var
    Wt: Integer;
    Style: TFontStyles;
  begin {call only if all things valid}
    Font.ibgColor := FontBG;
    Font.iColor := Props[Color];
  
negative.code:                       case Index of
                          FontFamily:
                            begin
                              S1 := ReadFontName(Props[Index]);
                              if S1 <> '' then
                                iName := S1;
                            end;
  
                          FontSize:
                            iSize := FontSizeConv(Props[Index], iSize, DefPointSize, FUseQuirksMode);
  
                          Color:
                            iColor := Props[Index];
  
                          BackgroundColor:
                            ibgColor := Props[Index];
  
                          FontStyle:
                            if (Props[Index] = 'italic') or (Props[Index] = 'oblique') then
                              iStyle := iStyle + [fsItalic]
                            else if Props[Index] = 'normal' then
                              iStyle := iStyle - [fsItalic];
  
                          FontWeight:
                            if Pos('bold', Props[Index]) > 0 then
                              iStyle := iStyle + [fsBold]
                            else if Pos('normal', Props[Index]) > 0 then
                              iStyle := iStyle - [fsBold]
                            else
                            begin
                              Wt := StrToIntDef(Props[Index], 0);
                              if Wt >= 600 then
                                iStyle := iStyle + [fsBold];
                            end;
  
                          LetterSpacing:
                            iCharExtra := Props[Index];
                        end;
                end
            else
  