There is a lot of function in the Ruby C API that takes the VALUE (*body)(), VALUE args combo parameters (such as rb_protect, or rb_rescue), and I don't understand how I should pass multiple arguments with such declaration. For example, how should I rb_protect a function call like this? rb_const_get( rb_cObject, rb_intern( "Foo" ) ); I saw other source cde like this: VALUE args[2]; args[0] = rb_cObject; args[1] = rb_intern( "Foo" ); rb_protect( rb_const_get, args, &result ); But this kind of code doesn't works (and just don't make sense for me after what I read from eval.c, but maybe I'm missing something). Thankx for helping, Ben.