         drawScreen.screenSaver(pgm_read_byte_near(channelNames + channelIndex), pgm_read_word_near(channelFreqTable + channelIndex));
 #endif
         do{
-            //delay(10); // timeout delay
-#ifdef USE_DIVERSITY
-            drawScreen.updateScreenSaver(active_receiver, readRSSI(), readRSSI(useReceiverA), readRSSI(useReceiverB));
+            rssi = readRSSI();
+
+#ifdef USE_DIVERSITY
+            drawScreen.updateScreenSaver(active_receiver, rssi, readRSSI(useReceiverA), readRSSI(useReceiverB));
 #else
-            drawScreen.updateScreenSaver(readRSSI());
+            drawScreen.updateScreenSaver(rssi);
 #endif
 
         }


#ifdef USE_IR_EMITTER
void sendIRPayload() {
    uint8_t check_sum = 2;
    Serial.write(2); // start of payload
    check_sum += channelIndex;

            }
        }
#ifndef TVOUT_SCREENS
        // change to screensaver after lock and 5 seconds has passed.
        if(time_screen_saver+5000 < millis() && time_screen_saver!=0 && rssi > 20) {
            state = STATE_SCREEN_SAVER;
        }
#endif
