xBee: duplicate response

Ok, the full code is below

Button xBee

#define VERSION "1.00a0"
int BELL= 11;
int localINDICATOR= 7;
int BUTTON = 2;

void setup() {
  pinMode(BUTTON, INPUT);
    pinMode(BELL, OUTPUT);
 pinMode(localINDICATOR, OUTPUT);
  Serial.begin(9600);
}

void loop() {
 //      digitalWrite(BELL, HIGH);
char s2 = Serial.read();   
digitalWrite(localINDICATOR, LOW); 
digitalWrite(BELL, LOW);
  // send a capital D over the serial port if the button is pressed
 
  if (digitalRead(BUTTON) == LOW) {
    Serial.print('D');
    delay(1000); // prevents overwhelming the serial port i increased the delay
digitalWrite(localINDICATOR, HIGH); 

}
   //        digitalWrite(BELL, HIGH);

  if (Serial.available() > 0) {
 //   Serial.print(s2);
    if (Serial.read() == 'K'){
      //ring the bell briefly
         //  Serial.print('k');
     digitalWrite(localINDICATOR, HIGH);
     delay(10);  
    }
    if (Serial.read() == 'H'){
      //ring the bell briefly
     digitalWrite(BELL, HIGH);
     delay(10);
//      Serial.print('k'); response code - develop later
    }
  }
}

relay xBee

//this is the device with the relay on it 

int globalset = 1;
int indicatorVar = 0; 
int timerVar =0; //i was using these three as external variables 

int buttonState = 0;         // variable for reading the pushbutton status
#define VERSION "1.01"
int REMOTEINDICATOR = 8;
int BELL = 5;
char val;
int lightsetting = 400;
//int BUTTON = 6;
int relay = 2;

void setup() {
  pinMode(BELL, OUTPUT);
    pinMode(REMOTEINDICATOR, OUTPUT);
  Serial.begin(9600);
  pinMode(relay, OUTPUT);     
}

void loop() { 

 //  digitalWrite(relay, LOW);   // set the relay OFF
  if (Serial.available() > 0) {

val=Serial.read();    
        if (val == 'h'){
        }
        
    if (val == 'D'){
  //    Serial.print('K');
  //    timerVar = 1;      
      digitalWrite(relay, HIGH); 
  delay(5000);
    digitalWrite(relay, LOW); 
    delay(1000);  
    } 
 } 
};

Cheers, Maraesa