SIM 300 GSM module problem

I have interfaced a gps module and also a gsm module to my arduino UNO. But the problem, is that arduino cant rx data from both simultaneously.

I use the gsm module only when a condition is satisfied, until then only gps module is used. At the point when the condition is satisfied, the gps module stops working, and gsm module keeps on sedning messages, and the program gets stuck.

At this point, I need to stop the gsm module temporarily or make it wait so that the gps can start again, so that condition can be checked again.

Could anyone , suggest any commands (AT or any other) to stop the gsm module temporarily immediately after a message is sent, so that my gps can start working again.

The below code is the gsm code I used in my main program. I am using arduino 1.0.3.

#include <SoftwareSerial.h>
SoftwareSerial cell(7,8);  // We need to create a serial port on D2/D3 to talk to the GSM module
char mobilenumber[] = "xxxxxxxxxx";  // Replace xxxxxxxx with the recipient's mobile number
void setup()
{  //Initialize serial ports for communication.
cell.begin(4800);
delay(3500); // give the GSM module time to initialise, locate network etc.
// this delay time varies. Use example 26.1 sketch to measure the amount
// of time from board reset to SIND: 4, then add five seconds just in case
}
void loop()
{
cell.println("AT+CMGF=1"); // set SMS mode to text
cell.print("AT+CMGS=");  // now send message...
cell.write((byte)34);  // ASCII equivalent of "
cell.print(mobilenumber);
cell.write((byte)34);   // ASCII equivalent of "
cell.println();
delay(500); // give the module some thinking time
cell.print("hi bobby, the king of kings... :-)");   // our message to send
cell.write((byte)26); // ASCII equivalent of Ctrl-Z
cell.println();
delay(15000); // the SMS module needs time to return to OK status