Looking at the CVS version of Ruby, the declaration for rb_rescue2() in
ruby.h isn't quite right when you're compiling under a C++ compiler. It
currently reads:

    VALUE rb_rescue2
__((VALUE(*)(ANYARGS),VALUE,VALUE(*)(ANYARGS),VALUE,...));

but should instead read:

    VALUE rb_rescue2 __((VALUE(*)(VALUE),VALUE,VALUE(*)(VALUE),VALUE,...));

HTH,

Lyle