I guess, having read the rest of the code, it might be worthwhile to mention how other commands are buffered until it completes.