On the C side of things I've got something like:

static VALUE m_RunWithTimeout(VALUE rStr)
{
   char* cStr;
   cStr = STR2CSTR(rStr);
   printf("%s",cStr);
}

...

VALUE mWin32ver;
void Init_Win32ver()
{
   mWin32ver = rb_define_module("Win32ver");
rb_define_module_function(mWin32ver,"RunWithTimeout",m_RunWithTimeout,1);
}

/*end c code*/

On the Ruby side I've got something like:
################
require 'Win32ver'
Win32ver.RunWithTimeout("some ruby string")
#######end######


When I run the ruby code I get:

'RunWithTimeout': failed to convert Module into String (TypeError) 
           from getver.rb:2

I'm not sure what this means, is it trying to say that the string supplied 
above ("some ruby string") is being treated as a module name somewhere?

Phil