Actually, the original version was quite alright, except for under very weird platforms, which define va_list as a type that cannot be copied (probably some sort of an array). What happened is that this code undergone lots of changes, which eventually brought it to a situation where both the 'safety assignment':
args = orig_args;
and the va_end() call after the vprintf() function were redundant (but were still fine on most platforms, and whenever they compiled). When the 'args=orig_args;' statement was removed and the va_end() statement was kept, the code became wrong (crashy) on many platforms.
hm, well I was to quick (once again), one problem overrode another, thus I got no crash...
with my latest CVS I´m getting this crash still, with exactly the same line numbers, in other words
that backtrace is totally equivalent to the prior one. When did you commit these changes?
andré