Upload Timeout Error on Mega 2560 - Not Sure What Changed

I have to report my findings with Arduino Mega 2560. I struggled hours with these
"avrdude: stk500v2_ReceiveMessage(): timeout", "avrdude: ser_recv(): read error: Device not configured"
error messages that started haunt me just when I was adding some new data to my program.

First I though that I had too much data (although I had only 18Kb). Removing the new data solved the issue. Then I started to look deeper in to the issue. Finally I managed to track this down to very weird root cause:

When ever a sequence of "0x21, 0x21, 0x21" is added to PROGMEM and this variable is referenced like:
const unsigned char bug[3] PROGMEM = {0x21,0x21,0x21};
pgm_read_byte(&bug[0]);
Uploading fails!!

If I change one of those 0x21s to something else, everything works like a charm again. This has to be some sequence that causes Arduino somehow to get stuck... Just unbelievable but true.

My setup is:
Arduino 1.0.1
Arduino Mega 2560 (ok it is from DE...)
AVRISP mkII (same happens with AVR ISP)
Mac OS 10.6.8

So if you have weird upload problems, just check your code for this sequence...