I just noticed something in the code, for those that had a hard time with the code.
This is a release note from the arduino app last year.
* The WProgram.h file, which provides declarations for the Arduino API,
has been renamed to Arduino.h. To create a library that will work in
both Arduino 0022 and Arduino 1.0, you can use an #ifdef that checks
for the ARDUINO constant, which was 22 and is now 100. For example:
#if defined(ARDUINO) && ARDUINO >= 100