>>>>> "M" == Minero Aoki <aamine / dp.u-netsurf.ne.jp> writes: M> Maybe you are right. (As you know) rb_gc_mark() is not needed M> because it is on the stack frame, I'm agree with you, but the problem is that it's not a _valid_ object and ruby call rb_gc_mark() for this object. This is rb_gc_mark() which is trying to interpret this structure as a Ruby object. For example, for Racc, rb_gc_mark() think that the object given is a Struct Object (i.e. it has found TYPE(obj) == T_STRUCT), and try to mark it like it do for a Struct object. Same problem with the example given where ruby-1.7.0 segfault (rb_gc_mark() is trying to mark an invalid object). Guy Decoux