With the following document: ------------------------- \directlua{
function test (head) texio.write_nl('====') texio.write_nl('') for item in node.traverse(head) do if item.id == node.id'glyph' then texio.write(unicode.utf8.char(item.char)) else texio.write('[' .. item.id .. ']') end end return head end callback.register("pre_linebreak_filter", test) } 12-34 \bye ------------------------- TexLive 2017 (1.0.4) showed: [9][0]12-34[14] But with 2018 (1.07) I get: [9][0]12[7]34[14][12] In other words, the hyphen char has been replaced by a dicretrionary. Cheers Javier