From: ts Date: 2006-08-30T00:05:35+09:00 Subject: Re: instance_eval, yield, C extensions >>>>> "D" == Daniel Berger writes: D> static VALUE kernel_foo(VALUE self){ D> return rb_funcall(cFoo, rb_intern("new"), 1, rb_yield(rb_block_proc())); ^^^^^^^^^^^^^^^ You are giving the proc to the block, you have writing something like thid def xxx(&block) Foo.new(yield(block)) end -- Guy Decoux