Err....
Perhaps I should have mentioned I am using swig.
OK Here is an example

main()
{
	ruby_init();
	etc

	test()
	rb_gc();
}

void test()
{
	VALUE v = create me a ruby obj i dont care how
}

So what happens to v?

or

main()
{

	VALUE 	v;

	ruby_init();
	etc

	test(&v)
	rb_gc();

	do some stuff that uses v
}

void test(
VALUE *v)
{
	*v = create me a ruby obj i dont care how
}
My understanding is that v gets deleted in both cases (well, at least
the first, can't remember what the thread said about the second case -
but there again. I've read so many!). Look, it's 1.30 in the morning.
I have a live transmission in 2 weweks time on BBC national TV. I sold
ruby/swig/OpenGL/Qt to my bosses over their choice for using NT (those
fools!). I KNOW this will work so please help all you ruby/swig
developers or else I am going to give it all up and become a dustman
(pun intended!)
My colleague says I should not post this but hey.....