   uint8_t exitNow = false;
   uint8_t menuSelection = 0;
   uint8_t click = NO_CLICK;
+  uint8_t in_edit_state = 0;
 
   // Display option screen
-  drawOptionsScreen( menuSelection );
+  drawOptionsScreen( menuSelection, in_edit_state );
 
   // Let the user release the button
   getClickType( BUTTON_PIN );
 
   while ( !exitNow )
   {
-    drawOptionsScreen( menuSelection );
+    drawOptionsScreen( menuSelection, in_edit_state );
     click = getClickType( BUTTON_PIN );
-    switch ( click )
-    {
-      case NO_CLICK:        // do nothing
-        break;
-
-      case SINGLE_CLICK:    // Move to next option
-        menuSelection++;
-        if (menuSelection >= MAX_OPTIONS + MAX_COMMANDS)
-          menuSelection = 0;
-        break;
-
-      case DOUBLE_CLICK:    // Move to previous option
-        if (menuSelection == 0)
-          menuSelection = MAX_OPTIONS + MAX_COMMANDS - 1;
-        else
-          menuSelection--;
-        break;
-
-      case LONG_CLICK:     // Execute command or toggle option
-      case LONG_LONG_CLICK:
-        if (menuSelection == EXIT_COMMAND)
-          exitNow = true;
-        else if (menuSelection == RESET_SETTINGS_COMMAND)
-          resetOptions();
-
-        else if (menuSelection == TEST_ALARM_COMMAND) {
-          testAlarm();
-        }
-        else
-          options[menuSelection] = !options[menuSelection];
-        break;
-    }
+
+    if (in_edit_state)
+      switch ( click )
+      {
+        case NO_CLICK:          // do nothing
+          break;
+
+        case SINGLE_CLICK:      // Increase Option
+          if (menuSelection == ALARM_LEVEL_OPTION)
+            options[menuSelection]++;
+          else
+            options[menuSelection] = !options[menuSelection];
+          break;
+
+        case DOUBLE_CLICK:      // Decrease Option
+          if (menuSelection == ALARM_LEVEL_OPTION)
+            options[menuSelection]--;
+          else
+            options[menuSelection] = !options[menuSelection];
+          break;
+
+        case LONG_CLICK:        // Execute command or toggle option
+        case LONG_LONG_CLICK:
+          in_edit_state = 0;
+          break;
+      }
+    else
+      switch ( click )
+      {
+        case NO_CLICK:          // do nothing
+          break;
+
+        case SINGLE_CLICK:      // Move to next option
+          menuSelection++;
+          if (menuSelection >= MAX_OPTIONS + MAX_COMMANDS)
+            menuSelection = 0;
+          break;
+
+        case DOUBLE_CLICK:      // Move to previous option
+          if (menuSelection == 0)
+            menuSelection = MAX_OPTIONS + MAX_COMMANDS - 1;
+          else
+            menuSelection--;
+          break;
+
+        case LONG_CLICK:        // Execute command or edit option
+        case LONG_LONG_CLICK:
+          if (menuSelection == EXIT_COMMAND)
+            exitNow = true;
+          else if (menuSelection == RESET_SETTINGS_COMMAND)
+            resetOptions();
+          else if (menuSelection == TEST_ALARM_COMMAND) {
+            testAlarm();
+          }
+          else
+            in_edit_state = 1;
+          break;
+      }
   }
 }
 

void     drawAutoScanScreen(void);
void     drawBattery(uint8_t xPos, uint8_t yPos, uint8_t value );
void     drawChannelScreen( uint8_t channel, uint16_t rssi);
void     drawOptionsScreen(uint8_t option );
void     drawScannerScreen( void );
void     drawStartScreen(void);
uint8_t  getClickType(uint8_t buttonPin);

      case FLIP_SCREEN_OPTION:       display.print(F("Flip Screen     ")); break;
      case LIPO_2S_METER_OPTION:     display.print(F("LiPo 2s Meter   ")); break;
      case LIPO_3S_METER_OPTION:     display.print(F("LiPo 3s Meter   ")); break;
      case SHOW_STARTSCREEN_OPTION:  display.print(F("Show Startscreen")); break;
      case SAVE_SCREEN_OPTION:       display.print(F("Screen Saver    ")); break;
      case BATTERY_ALARM_OPTION:     display.print(F("Battery Alarm   ")); break;
      case ALARM_LEVEL_OPTION:       display.print(F("Alarm Level     ")); break;
      case TEST_ALARM_COMMAND:       display.print(F("Test Alarm      ")); break;
      case RESET_SETTINGS_COMMAND:   display.print(F("Reset Settings  ")); break;
      case EXIT_COMMAND:             display.print(F("Exit            ")); break;
    }
    if (in_edit_state) {
      display.setTextColor(BLACK, WHITE);
    }
    if (j == FLIP_SCREEN_OPTION || j == LIPO_2S_METER_OPTION || j == LIPO_3S_METER_OPTION || j == SHOW_STARTSCREEN_OPTION || j == SAVE_SCREEN_OPTION || j == BATTERY_ALARM_OPTION) {
      if (options[j])
        display.print(F(" ON "));
      else
        display.print(F(" OFF"));
    }
    else if ( j == ALARM_LEVEL_OPTION)
      display.print(options[j]);
    else
      display.print("    ");

