Problema Libreria GSM Arduino Mega

Salve a tutti, non riesco a capire come posso risolvere questo problema, probabilmente dipende da qualche libreria che non ho. caricando uno sketch per inviare SMS con librerie per Arduino Mega mi tira fuori questo errore:

  This report would have more information with
  "Show verbose output during compilation"
  enabled in File > Preferences.
Arduino: 1.0.6 (Mac OS X), Board: "Arduino Mega 2560 or Mega ADK"
/Users/Fabio/Documents/Arduino/libraries/GSMSHIELD_TDG/HWSerial.cpp: In member function 'size_t HWSerial::print(const __FlashStringHelper*)':
/Users/Fabio/Documents/Arduino/libraries/GSMSHIELD_TDG/HWSerial.cpp:54:9: error: 'prog_char' does not name a type
   const prog_char *p = (const prog_char *)ifsh;
         ^
In file included from /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/Arduino.h:27:0,
                 from /Users/Fabio/Documents/Arduino/libraries/GSMSHIELD_TDG/HWSerial.h:6,
                 from /Users/Fabio/Documents/Arduino/libraries/GSMSHIELD_TDG/HWSerial.cpp:1:
/Users/Fabio/Documents/Arduino/libraries/GSMSHIELD_TDG/HWSerial.cpp:57:37: error: 'p' was not declared in this scope
     unsigned char c = pgm_read_byte(p++);
                                     ^

si riferisce ad un comando presente in HWSerial.cpp dove viene citato:

size_t HWSerial::print(const __FlashStringHelper *ifsh)
{
  const prog_char *p = (const prog_char *)ifsh;
  size_t n = 0;
  while (1) {
    unsigned char c = pgm_read_byte(p++);
    if (c == 0) break;
    n += write(c);
  }
  return n;
}

Da cosa può dipendere? possibile che solo io ho questo problema?

Grazie

Che IDE usi? Qual'è lo sketch che te lo fa?

Non ho dormito questa notte, ma sono riuscito a tamponare il problema, non so se è corretto come ho fatto, in pratica ho dovuto sostituire le riche:

size_t HWSerial::print(const __FlashStringHelper *ifsh)
{
  const prog_char *p = (const prog_char *)ifsh;
  size_t n = 0;
  while (1) {
    unsigned char c = pgm_read_byte(p++);
    if (c == 0) break;
    n += write(c);
  }
  return n;
}

Con

size_t HWSerial::print(const __FlashStringHelper *ifsh)
{
 const char PROGMEM *p = (const char PROGMEM *)ifsh;
 size_t n = 0;
 while (1) {
 unsigned char c = pgm_read_byte(p++);
 if (c == 0) break;
 n += write(c);
 }
 return n;
}

ho l'IDE 1.0.6

Grazie.