GMS control

This is a control from GMS. It works, controls 5 led’s. Problem I have is that I have to send the entire string of 5 on off characters to get the last light to light. If I skip any of the characters the program hangs at that one. I need it to simply skip a light if I don’t turn it on or off, so if I want red on I want to just send #r1 and not have to send #g1b1y1r1w1a1.

// Example 55.7
 
#include <SoftwareSerial.h> 
char inchar; // Will hold the incoming character from the GSM shield
SoftwareSerial SIM900(7, 8);
 
int led1 = 10;
int led2 = 11;
int led3 = 12;
int led4 = 13;
int led5 = 5; 
int led6 = 6;
void setup()
{
  Serial.begin(19200);
  // set up the digital pins to control
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
  pinMode(led6, OUTPUT);
  
  digitalWrite(led1, LOW);
  digitalWrite(led2, LOW);
  digitalWrite(led3, LOW);
  digitalWrite(led4, LOW);
  digitalWrite(led5, LOW);
  digitalWrite(led6, LOW);
 
  // wake up the GSM shield
  SIM900power(); 
  SIM900.begin(19200);
  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(2000);
  digitalWrite(9, LOW);
  Serial.println("power");
  delay(7000);
  Serial.println("ready");
}
 
void loop() 
{
  //If a character comes in from the cellular module...
  if(SIM900.available() >0)
  {
    inchar=SIM900.read(); 
    if (inchar=='#')
    {
      delay(10);
 
      inchar=SIM900.read(); 
      if (inchar=='g')
      {
        delay(10);
        inchar=SIM900.read();
        if (inchar=='0')
        {
          digitalWrite(led1, LOW);
          Serial.println("-g");
        } 
        else if (inchar=='1')
        {
          digitalWrite(led1, HIGH);
          digitalWrite(led2, LOW);
          digitalWrite(led3, LOW);
          digitalWrite(led4, LOW);
          Serial.println("+g");
          
        }
        delay(10);
        inchar=SIM900.read(); 
         if (inchar=='b')
        {
          inchar=SIM900.read();
          if (inchar=='0')
          {
            digitalWrite(led2, LOW);
            Serial.println("-b");
          } 
          else if (inchar=='1')
          {
            digitalWrite(led2, HIGH);
            digitalWrite(led1, LOW);
            digitalWrite(led3, LOW);
            digitalWrite(led4, LOW);
            Serial.println("+b");
          }
          delay(10);
          inchar=SIM900.read(); 
          if (inchar=='y')
          {
            inchar=SIM900.read();
            if (inchar=='0')
            {
              digitalWrite(led3, LOW);
              Serial.println("-y");
            } 
            else if (inchar=='1')
            {
              digitalWrite(led3, HIGH);
              digitalWrite(led1, LOW);
              digitalWrite(led2, LOW);
              digitalWrite(led4, LOW);
              Serial.println("+y");
            }
            delay(10);
            inchar=SIM900.read(); 
            if (inchar=='r')
            {
              delay(10);
              inchar=SIM900.read();
              if (inchar=='0')
              {
                digitalWrite(led4, LOW);
                Serial.println("-r");
              } 
              else if (inchar=='1')
              {
                digitalWrite(led4, HIGH);
                digitalWrite(led1, LOW);
                digitalWrite(led2, LOW);
                digitalWrite(led3, LOW);
                Serial.println("+r");
              }
              delay(10);
              inchar=SIM900.read(); 
           if (inchar=='w')
           delay(10);
          {
            inchar=SIM900.read();
            if (inchar=='0')
            {
              digitalWrite(led5, LOW);
              Serial.println("-w");
            } 
            else if (inchar=='1')
            {
              digitalWrite(led5, HIGH);
              Serial.println("+w");
            }
            delay(10);
            inchar=SIM900.read(); 
            if (inchar=='a')
            {
              delay(10);
              inchar=SIM900.read();
              if (inchar=='0')
              {
                digitalWrite(led6, LOW);
                Serial.println("-a");
              } 
              else if (inchar=='1')
              {
                digitalWrite(led6, HIGH);
                delay (1000);
                digitalWrite(led6, LOW);
                Serial.println("+alert");
              }
            }
          }
          Serial.println("Done...");
          SIM900.println("AT+CMGD=1,4"); // delete all SMS
        }
      }
    }
  }
}
  }
}