The change was to not modify argument0 directly, but to use a helper variable to hold it (I don't remember what the compilation error was but presumably argument is read-only after 2.3)
The current version looks like this:
///tsprintf(format,...) function tsprintf() { //Trivial String Print Format //Replaces each % percent sign with an argument, then returns the string. //Inteded to make writing debug printouts less painful. var c, s = argument[0]; for(c = 1;c < argument_count;c++){ s = string_replace(s,"%",string(argument[c])); } return s; }