> > caml_copy_string actually allocates a *garbage-collected* > string, so you need to tell about its result to the GC. Try instead > > CAMLprim value getparam(value request, value key){ > CAMLparam2(request, key); > CAMLlocal1(result); > result = caml_copy_string("test"); > CAML_return(result); > } > > (to understand why, read any material on precise moving garbage > collectors) Thanks for the fast response. But ocaml/stdlib/sys.c contains this function: CAMLprim value caml_sys_getenv(value var) { char * res; res = getenv(String_val(var)); if (res == 0) caml_raise_not_found(); return caml_copy_string(res); } I found out that it is a links problem because of mixing a static library and a DLL. best regards, Christoph Bauer