GSM Shield Sending SMS Error

I have been playing with a Geeetech GSM shield and easily got it sending SMS messages and making phone calls using Geeetech’s demo code. Over the last couple days I now cant get it to send SMS messages even if I go back to the Geeetech demo code that I started with. Every time I try to send a message by typing t in the serial monitor it comes back with ERROR after trying to send the message. Below is from the serial monitor after sending a SMS and then making a phone call. Again the SMS Errors and the phone call goes through. I have replaced the last 4 of my phone number is xxxx. Can anyone offer any help. I am using a Arduino Uno.

AT+CMGF=1

OK
AT + CMGS = “+1512202xxxx”

How are you ?

ERROR
ATD + +1512202xxxx;

OK

Here is the code

/*Note: this code is a demo for how to using GPRS Shield to send SMS message and dial a voice call.

  The microcontrollers Digital Pin 7 and hence allow unhindered communication with GPRS Shield using SoftSerial Library.
  IDE: Arduino 1.0 or later */


#include <SoftwareSerial.h>
#include <String.h>

SoftwareSerial mySerial(7, 8);

void setup()
{
  mySerial.begin(19200);               // the GPRS baud rate
  Serial.begin(19200);    // the GPRS baud rate
  delay(500);
}

void loop()
{
  //after start up the program, you can using terminal to connect the serial of gprs shield,
  //if you input 't' in the terminal, the program will execute SendTextMessage(), it will show how to send a sms message,
  //if input 'd' in the terminal, it will execute DialVoiceCall(), etc.

  if (Serial.available())
    switch (Serial.read())
    {
      case 't':
        SendTextMessage();
        break;
      case 'd':
        DialVoiceCall();
        break;

    }
  if (mySerial.available())
    Serial.write(mySerial.read());
}

///SendTextMessage()
///this function is to send a sms message
void SendTextMessage()
{
  mySerial.print("AT+CMGF=1\r");    //Because we want to send the SMS in text mode
  delay(100);
  mySerial.println("AT + CMGS = \"+1512202xxxx\"");//send sms message, be careful need to add a country code before the cellphone number
  delay(100);
  mySerial.println("How are you ?");//the content of the message
  delay(100);
  mySerial.println((char)26);//the ASCII code of the ctrl+z is 26
  delay(100);
  mySerial.println();
}

///DialVoiceCall
///this function is to dial a voice call
void DialVoiceCall()
{
  mySerial.println("ATD + +1512202xxxx;");//dial the number
  delay(100);
  mySerial.println();
}

void ShowSerialData()
{
  while (mySerial.available() != 0)
    Serial.write(mySerial.read());
}

Alright guys got this figured out. I called Truphone who I got the SIM and cell service through(Very helpful and friendly support by the way) because I though it had to be something with the service because I went back to old revisions of the code that I know worked and it still didn't work. I put the SIM card in an iPhone and they walked me through checking the Service Center Address on the SIM card and low and behold somehow I must have goofed it up. We got it set back to the correct number and now everything is working again.

Back on to coding for my project. Next steps to move it to from my Uno to an Arduino Mega so my SoftwareSerial is going to have to change since I cant use ports 7 and 8.

Can I just mount the Shield on top of the Mega and connect a jumper from 50 to 7 and 51 to 8 and change my code form
SoftwareSerial mySerial(7, 8);
to
SoftwareSerial mySerial(50, 51);

Or will I have issues just jumping them.