I've encountered the exact same error on Mandrake Linux 10 and Darwin (Tiger, OSX 10.4). Running it (die_before_plan.t) through the debugger, all I see is that the strings after __END__ do not match what is returned from $io; but they only differ by a little bit.
If I change them to:
__DATA__
1..1
not ok 1 - setup (for test method 'test') died (died before plan set)
# Failed test 'setup (for test method 'test') died (died before plan set)'
# in t/die_before_plan.t at line 34.
ok 2 - test just here to get setup method run
then the tests pass. I can't tell, though, whether this is good or bad :o)