lcd clear but then wont come back : #include <IRremote.h>


    #include <LiquidCrystal.h>
    LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
    int TempPin = A0;
    float realTemp = 0;
    int FakeTemp = 0;
    int target = 20;
    int IRPin = 11;
    IRrecv irrecv(IRPin);
    decode_results results;

    void setup() {
      // put your setup code here, to run once:
      lcd.begin(16, 2);
      Serial.begin(9600);
      while (! Serial);
      irrecv.enableIRIn(); //enables ir receiver
    }

    void loop() {
      FakeTemp = analogRead(TempPin);
      realTemp = (5.0 * FakeTemp * 1000.0) / (1024 * 10); // math for the 
    temperature
      Serial.println(realTemp);
      lcd.print("Temperature");
      lcd.setCursor(0, 13);
      lcd.print(realTemp); //prints the temperature
      delay(3000);
      lcd.clear();

    if (irrecv.decode(16754775)) { //input from ir remote
      lcd.clear();
      lcd.print("Target=");
      lcd.print(target + 1);
      delay(3000);
      irrecv.resume();
      lcd.clear();
      target = target + 1;
      // adds to target
    }

    if (irrecv.decode(16769055)) { //this is were everything goes wrong
      lcd.clear();
      lcd.print("Target=");
      lcd.print(target - 1);
      delay(3000);
      irrecv.resume();
      lcd.clear();
      target = target - 1;
    }

    }
I have been at this for quite some time and i dont know what is wrong when ever i add that one if statement it will display the temp on the lcd once. But then it wont do it again i can see in the serial monitor it is still grabbing the temp but wont print it on the lcd.