That doesn't break hilfe either.
Only that exact order breaks:
| > string s = Stdio.read_bytes("sugar.jpg");
| > object i = Image.JPEG.decode(s);
| >> i;
| (1) Result: Image.Image( 300 x 300 /* 263.7Kb */)
| > Image.JPEG.encode(i);
| *** glibc detected *** /usr/local/bin/pike: double free or corruption (out):
0x0000000000b52860 ***
| Error while mapping shared library sections:
| ¹=ãȬàx¬<5`Ó 3Ú9ÿ: No such file or directory.
| ======= Backtrace: =========
| /lib/libc.so.6[0x2b5197a4f08a]
| /lib/libc.so.6(cfree+0x8c)[0x2b5197a52c1c]
| ...
Skipping the "i;" doesn't lead to a fault. Replacing the "i;" with
werror("%O\n",i);
stops it from breaking as well.
This bug goes away if you look at it the wrong way. :P