It appears to be a mono runtime bug. Note that it disappears with -O=all or using the Mono interpreter (mint) instead. I filed a bug report: http://bugs.ximian.com/show_bug.cgi?id=54710