Ihandle *CiupVbox (Ihandle *first, ...) { Ihandle *box; va_list arg va_start (arg, first); box = IupVbox (first, arg); return box; } ... later in code ... ... Version 1 Ihandle *mainBox = CiupVbox (IupLabel ("Hello"), IupLabel ("World"), NULL); // fails, seg fault ... Version 2 Ihandle *mainBox = IupVbox (IupLabel ("Hello"), IupLabel ("World"), NULL); // Works fine