Problem with SMS that will not work..

I have a Arduino UNO with a GSM/GPRS Shield of elecrow

and i have the problem that i can send a SMS and it will be received but not on the rigt form…

#include <SoftwareSerial.h>  // SoftwareSerial Library eingefügt

 SoftwareSerial mySerial(0, 1);  // String Buffer für die GPRS Shield (TX RX)

String msg = String(" ");  // Declaration von variablen
int SmsContentFlag = 0;

int relay_a=13;  // Declarationen von Relais pins
int relay_b=5;
int relay_c=6;
int relay_d=7;

  
// String SIM_PIN_CODE = String( "XXXX" );  // Falls dem PIN code von carte wird gefragt
 
void setup()  
{
  mySerial.begin(19200);               // die GPRS baud rate
  Serial.begin(19200);                 // das serial monitor baud rate
  
  pinMode( 13, OUTPUT );                // Initializierung von pins
  pinMode( 5, OUTPUT ); 
  pinMode( 6, OUTPUT ); 
  pinMode( 7, OUTPUT ); 
  digitalWrite( 13, LOW ); 
  digitalWrite( 5, LOW ); 
  digitalWrite( 6, LOW );
  digitalWrite( 7, LOW );
  Serial.println( "AT+CMGF=1" );
  mySerial.println( "AT+CMGF=1" );    // Frage für SMS in Text mode
 delay(200);
}
 
void loop()
{
    char SerialInByte;    // SerialInByte als char gespeichert
    
    if(Serial.available())
    {   
        mySerial.print((unsigned char)Serial.read());   
        }
    else if(mySerial.available())
    {
        char SerialInByte;    
        SerialInByte = (unsigned char)mySerial.read();  // Programm wartet auf GPRS messagen
       
       
        if( SerialInByte == 13 ){   // wenn der SMS endet mit ein <CR>
          
          ProcessGprsMsg();   // Dem unterprogramm ProcessGprsMsg wird aufgerufen
         }
         if( SerialInByte == 10 ){
            ProcessGprsMsg();
         }
         else {
           // EN: store the current character in the message string buffer
           msg += String(SerialInByte);
         }
     }   
}
// EN: Make action based on the content of the SMS. 
//     Notice than SMS content is the result of the processing of several GPRS shield messages.
void ProcessSms( String sms ){
  
  if( sms.indexOf("ona") >= 0 ){
    digitalWrite( relay_a, HIGH );
  }
   if( sms.indexOf("onb") >= 0 ){
    digitalWrite(  relay_b, HIGH );
  }
   if( sms.indexOf("onc") >= 0 ){
    digitalWrite(  relay_c, HIGH );
  }
  if( sms.indexOf("ond") >= 0 ){
    digitalWrite(  relay_d, HIGH );
  }
  if( sms.indexOf("offa") >= 0 ){
    digitalWrite(  relay_a, LOW );
  }
  if( sms.indexOf("offb") >= 0 ){
    digitalWrite(  relay_b, LOW );
  }
  if( sms.indexOf("offc") >= 0 ){
    digitalWrite(  relay_c, LOW );
  }
  if( sms.indexOf("offd") >= 0 ){
    digitalWrite(  relay_d, LOW );
  }
}
// EN: Request Text Mode for SMS messaging
void GprsTextModeSMS(){
  Serial.println( "AT+CMGF=1" );
}

void GprsReadSmsStore( String SmsStorePos ){
  mySerial.print( "AT+CMGR=" );
  mySerial.println( SmsStorePos );
  Serial.print ("AT+CMGR=");
  Serial.println( SmsStorePos );
}

// EN: Clear the GPRS shield message buffer
void ClearGprsMsg(){
  msg = "";
}

// EN: interpret the GPRS shield message and act appropiately
void ProcessGprsMsg() {
  if( msg.indexOf( "Call Ready" ) >= 0 ){
     Serial.println( "*** GPRS Shield registered on Mobile Network ***" );
     GprsTextModeSMS();
  }
  
  // EN: unsolicited message received when getting a SMS message
  if( msg.indexOf( "+CMTI" ) >= 0 ){
     Serial.println( "*** SMS Received ***" );
     // EN: Look for the coma in the full message (+CMTI: "SM",6)
     //     In the sample, the SMS is stored at position 6
     int iPos = msg.indexOf( "," );
     String SmsStorePos = msg.substring( iPos+1 );
     Serial.print( "SMS stored at " );
     Serial.println( SmsStorePos );  
     SmsContentFlag = 1;
     // EN: Ask to read the SMS store
     GprsReadSmsStore( SmsStorePos );
  }
  
  // EN: SMS store readed through UART (result of GprsReadSmsStore request)  
  if( msg.indexOf( "+CMGR:" ) >= 0 ){
    // EN: Next message will contains the BODY of SMS
    SmsContentFlag = 1;
    // EN: Following lines are essentiel to not clear the flag!
    ClearGprsMsg();
    return;
  }
  
  // EN: +CMGR message just before indicate that the following GRPS Shield message 
  //     (this message) will contains the SMS body 
  if( SmsContentFlag == 1 ){
    Serial.println( "*** SMS MESSAGE CONTENT ***" );
    Serial.println( msg );
    Serial.println( "*** END OF SMS MESSAGE ***" );
    ProcessSms( msg );
  }
  
  ClearGprsMsg();
  // EN: Always clear the flag
  SmsContentFlag = 0; 
}

wenn i send a SMS the Serial Monitor will show

AT+CMGF=1
*** SMS Received ***
SMS stored at 39
AT+CMGR=39

but in the underprogramm

void GprsReadSmsStore( String SmsStorePos ){
mySerial.print( “AT+CMGR=” );
mySerial.println( SmsStorePos );
Serial.print (“AT+CMGR=”);
Serial.println( SmsStorePos );
}
the SMS will not set as +CMGR and not reworke…

someone can help me??

thank’s a lot