       switch (event)
       {
         case vfo_RLeft:
+          if (++index > 16)
+            index = 16;
+          break;
+        case vfo_RRight:
           if (--index < 1)
             index = 1;
           break;
-        case vfo_RRight:
-          if (++index > 16)
-            index = 16;
-          break;
         case vfo_Click:
+          old_contrast = LcdContrast;  // for when we exit
           save_to_eeprom();
           display_flash();
           break;
         case vfo_HoldClick:
+          // not saving, restoe original contrast setting
+          LcdContrast = old_contrast;
+          analogWrite(mc_Contrast, LcdContrast);
           event_flush();
           return;
         default:

// Set the current contrast and save to EEPROM if 'actioned'.
//   menu      address of 'calling' menu
//   item_num  index of MenuItem we were actioned from
//----------------------------------------

void contrast_action(struct Menu *menu, int item_num)
{
  // convert contrast value to a display value in [1, 16]
  int index = 16 - LcdContrast / 8;
 
  // get rid of any stray events to this point
  event_flush();

            index = 16;
          break;
        case vfo_Click:
          old_brightness = LcdBrightness;
          save_to_eeprom();
          display_flash();
          break;
        case vfo_HoldClick:
          LcdBrightness = old_brightness;
          event_flush();
          return;
        default:
