                 break;
             } // end switch
 
-            while(digitalRead(buttonMode) == LOW)
+            while(digitalRead(buttonMode) == LOW || digitalRead(buttonSeek) == LOW || digitalRead(buttonDown) == LOW)
             {
                 // wait for MODE release
-                in_menu_time_out=10;
-            }
-            while(--in_menu_time_out && (digitalRead(buttonMode) == HIGH)) // wait for next mode or time out
-            {
-                delay(200); // timeout delay
-            }
-            if(in_menu_time_out==0)
-            {
+                in_menu_time_out=50;
+            }
+            while(--in_menu_time_out && ((digitalRead(buttonMode) == HIGH) && (digitalRead(buttonSeek) == HIGH) && (digitalRead(buttonDown) == HIGH))) // wait for next key press or time out
+            {
+                delay(100); // timeout delay
+            }
+            if(in_menu_time_out==0 || digitalRead(buttonMode) == LOW)
+            {
+                if(digitalRead(buttonMode) != LOW) {
+                    state=state_last_used; // exit to last state on timeout.
+                }
                 in_menu=0; // EXIT
                 beep(KEY_DEBOUNCE/2); // beep & debounce
                 delay(50); // debounce

            TV.print(50,TV_Y_OFFSET+3*TV_Y_GRID, pgm_read_word_near(channelFreqTable + channelIndex));
        }
        // show signal strength
        #define RSSI_BAR_SIZE 100
        rssi_scaled=map(rssi, 1, 100, 1, RSSI_BAR_SIZE);
        // clear last bar

            TV.printPGM(10, 5+1*MENU_Y_SIZE, PSTR("Auto"));
            TV.printPGM(10, 5+2*MENU_Y_SIZE, PSTR("Receiver A"));
            TV.printPGM(10, 5+3*MENU_Y_SIZE, PSTR("Receiver B"));
            // RSSI Strength
            TV.draw_line(0,3+4*MENU_Y_SIZE, TV_X_MAX, 3+4*MENU_Y_SIZE, WHITE);
            TV.printPGM(10, 6+4*MENU_Y_SIZE, PSTR("A:"));
            TV.draw_line(0,3+5*MENU_Y_SIZE, TV_X_MAX, 3+5*MENU_Y_SIZE, WHITE);
            TV.printPGM(10, 6+5*MENU_Y_SIZE, PSTR("B:"));
            switch (menu_id)
            {
                case useReceiverAuto:
