anchor.diff:              lists:reverse(Acc);
           _ ->
               {Tag, S1} = tokenize(B, S),
  -            tokens(B, S1, [Tag | Acc])
  -    end.
  +            case parse_flag(Tag) of
  +                script ->
  +                    {Tag2, S2} = tokenize_script(B, S1),
  +                    tokens(B, S2, [Tag2, Tag | Acc]);
  +                textarea ->
  +                    {Tag2, S2} = tokenize_textarea(B, S1),
  +                    tokens(B, S2, [Tag2, Tag | Acc]);
  +                none ->
  +                    tokens(B, S1, [Tag | Acc])
  +            end
  +    end.
  +
  +parse_flag({start_tag, B, _, false}) ->
  +    case string:to_lower(binary_to_list(B)) of
  +        "script" ->
  +            script;
  +        "textarea" ->
  +            textarea;
  +        _ ->
  +            none
  +    end;
  +parse_flag(_) ->
  +    none.
   
   tokenize(B, S=#decoder{offset=O}) ->
       case B of
  
positive.code:     attrs_to_html(Rest,
                    [[<<" ">>, escape(K), <<"=\"">>,
                      escape_attr(V), <<"\"">>] | Acc]).
      
  test_escape() ->
      <<"&amp;quot;\"word &lt;&lt;up!&amp;quot;">> =
          escape(<<"&quot;\"word <<up!&quot;">>),
  
negative.code: 
  destack(TagName, Stack) when is_list(Stack) ->
      F = fun (X) ->
                  case X of
                      {TagName, _, _} ->
                          false;
                      _ ->
  