:char_p => { :default => '""', :ctype => 'char* %s', :ruby2c => 'StringValuePtr(%s)', :c2ruby => 'rb_str_new2(%s)'} I think you'll want to store either a copy of the string or a reference to the string object (which would need to be marked). If you don't, the string could be destroyed before the containing struct, which would leave you with a dangling pointer. Paul