Anyone an idea what might be wrong?
Yes, the delayMicroseconds() function is written to except a unsigned integer value. A value of 500000 will not fit into a integer. Here is the reference page for that function:
http://arduino.cc/en/Reference/DelayMicroseconds
Lefty