there seems to be a bug in the stk500 uploader of the arduino mega2560.
If one tries to reset the chip by using the watchdog, one sets the wathdog to timeout of x msec. After the reset, the watchdog is still active, due to unknown reason of the avr guys. But, the timeout is resetted to the mimum time of a few ms.
And this is too long for the bootloader, which then keeps resetting in a row.
It was fixed in some other bootloader:http://code.google.com/p/arduino/issues/detail?id=181
If somebody could add this watchdog code to the the bootloader, that would be awesome.
I just ran into this as well, very annoying. I ran across something else that said its fixed in Uno but I doubt it since it looks like the dowloadable arduino software release is still at version 0022, though maybe more manufacturers are now shipping optiboot or other hacked loaders (adafruit does some people say).
What's more the solution described on this page: http://www.nongnu.org/avr-libc/user-manual/group__avr__watchdog.html
doesn't work with the bootloader (I don't know if the .init3 code runs too late with the bootloader or what).
This would be a good one to fix for sure.