I see your point. But I guess the HTML specification does not define what supposed to happen in the situations like that. It only explicitly requires that ‘<' content character should be defined as '<' Of course there is a common practice how to workaround invalid syntax, but you can imagine it is not realistic to predict all possible coding errors and to test them in the popular browsers. We opened a ticket for the issue, however it will take not less than one month to fix: even minor changes in JavaCC parser grammar definition cause big differences in autogenerated Java classes. That means big additional efforts to port the changes to .NET platform. As a workaround I would recommend to pre-process source HTML before it is passed to PD4ML: to substitute all occurrences of '<<' with '< <'