>>>>> "e" == elathan <elathan / phys.uoa.gr> writes: >> don't forget to define a mark function, and call rb_gc_mark(proc) e> You mean a mark function for the Ruby garbage collector? yes, the block must be marked otherwise the ruby GC will remove it. This mean that you must define a mark function for your C++ object and call rb_gc_mark(proc) inside it. Guy Decoux