I'm trying to call a Perl sub from a C function using stacks to pass arguments to and return variables from the Perl sub. Here's a simplified version of my code. Can anyone tell me why it bombs and dumps core (on my machine, at least)? use Inline 'C'; interface(); sub Perl_sub { return "str_$_[0]" } __DATA__ __C__ void C_function(double num, char* str); void interface() { double num; char str[30]; /* this runs fine */ num = 3.0; C_function(num, str); fprintf(stderr, "(%f, %s)\n\n", num, str); /* this dumps core */ num = 4.0; C_function(num, str); fprintf(stderr, "(%f, %s)\n\n", num, str); } void C_function(double num, char* str) { Inline_Stack_Vars; char ret[30]; Inline_Stack_Reset; Inline_Stack_Push(newSVnv(num)); Inline_Stack_Push(newSVpvn(str, strlen(str))); Inline_Stack_Done; call_pv("Perl_sub", G_SCALAR); strcpy(ret, SvPV(Inline_Stack_Item(0), PL_na)); strcpy(str, ret); Inline_Stack_Void; } Thanks, Brett Denner -- Brett W. Denner Lockheed Martin Aeronautics Co. email: [EMAIL PROTECTED] PO Box 748, MZ 9332 phone: 817-935-1144 Fort Worth, TX 76101 fax: 817-935-1212