Hi. count_newlines is passed the wrong buffer length (off-by-one) so it overwrites first differing byte in first file's buffer. Attached patch fixes. Actual: $ cmp -b <(echo bad) <(echo bug) [snip] differ: byte 2, line 1 is 12 ^J 165 u Expected: $ cmp -b <(echo bad) <(echo bug) [snip] differ: byte 2, line 1 is 141 a 165 u Cheers! --mancha