See the test results for all programmers.
Unlike the previous circuit, this one does provide a reset pulse to the target AVR when the port goes active. The reset pulse starts the Arduino compatible bootloader, which will then prepare to receive the upload.
This circuit could also be used to give your Arduino a MAX232, so the Arduino can use RS-232 for serial communication with the world. To do so, just leave off C6 and the reset line, and hook the Rx to digital pin 0 and Tx to digital pin 1 on the Arduino. Of course you have to hook the ground up as well.