Arduino UNO + SIM900 GSM shield Problem!!! HELP HELP HELP

Hi guys

Im using a SIM900 GSM shield and Arduino UNO to control few relays by receiving SMS commands from a user.
Everything was working perfectly until yesterday then I couldn't receive any text commands and the SIM900 shield is not accepting any text messages anymore. also its getting slower and slower by the time. I'm thinking that its a memory problem; because I have done many tests and uploaded my codes, but I don't know how to reset or clear the SIM900 memory.

Do you think I filled up the memory? if I did that how i can clear it?
or there are other causes ??

I'm using this simple code that I got from the internet:

#include <SoftwareSerial.h>
SoftwareSerial SIM900(7, 8);

char incoming_char=0;

void setup()
{
Serial.begin(19200); // for serial monitor
SIM900.begin(19200); // for GSM shield
SIM900power(); // turn on shield
delay(20000); // give time to log on to network.

SIM900.print("AT+CMGF=1\r"); // set SMS mode to text
delay(100);
SIM900.print("AT+CNMI=2,2,0,0,0\r");
// blurt out contents of new SMS upon receipt to the GSM shield's serial out
delay(100);
}

void SIM900power()
// software equivalent of pressing the GSM shield "power" button
{
digitalWrite(9, HIGH);
delay(1000);
digitalWrite(9, LOW);
delay(7000);
}

void loop()
{
// Now we simply display any text that the GSM shield sends out on the serial monitor
if(SIM900.available() >0)
{
incoming_char=SIM900.read(); //Get the character from the cellular serial port.
Serial.print(incoming_char); //Print the incoming character to the terminal.
}
}

Is there really a smiley face in your code?

If you want to reset the SIM900 to the factory default use AT+F, but I doubt that will solve the problem.