I've updated the original post with a minimal example displaying the problem. It seems to work when I write to a file instead of a string, which is strange. Even stranger is that when writing to a file, the order is wrong, I see the Text::BibTeX error at the top of the file and "manual error" after this. Buffering issue? Tried this on two different machines, perl 5.14.1 on both, one cygwin, one OSX.