--- call.c.orig 2003-07-09 13:53:17.000000000 +1000 +++ call.c 2013-10-16 20:20:28.000000000 +1100 @@ -185,7 +185,7 @@ ici_callv(ici_str_t *func_name, char *ty if (types[0] != '\0' && types[1] == '@') { va_list tmp; - tmp = va; + va_copy(tmp, va); member_obj = va_arg(tmp, ici_obj_t *); if ((func_obj = ici_fetch(member_obj, func_name)) == objof(&o_null)) {