diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp
index 1cd9a6bf..74fb22e1 100644
--- a/Firmware/Marlin_main.cpp
+++ b/Firmware/Marlin_main.cpp
@@ -1089,9 +1089,9 @@ void setup()
 	
 #ifndef DEBUG_DISABLE_STARTMSGS
   if (eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE) == 1) {
-		lcd_wizard(0);
+	  lcd_wizard(0);
   }
-  else if (eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE) == 0) { //dont show calibration status messages if wizard is currently active
+  if (eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE) == 0) { //dont show calibration status messages if wizard is currently active
 	  if (calibration_status() == CALIBRATION_STATUS_ASSEMBLED ||
 		  calibration_status() == CALIBRATION_STATUS_UNKNOWN) {
 		  // Reset the babystepping values, so the printer will not move the Z axis up when the babystepping is enabled.
@@ -1919,6 +1919,7 @@ bool gcode_M45(bool onlyZ) {
 			KEEPALIVE_STATE(PAUSED_FOR_USER);
 			bool result = lcd_show_fullscreen_message_yes_no_and_wait_P(MSG_STEEL_SHEET_CHECK, false, false);
 			if(result) lcd_show_fullscreen_message_and_wait_P(MSG_REMOVE_STEEL_SHEET);
+			lcd_show_fullscreen_message_and_wait_P(MSG_CONFIRM_NOZZLE_CLEAN);
 		    lcd_show_fullscreen_message_and_wait_P(MSG_PAPER);
 			KEEPALIVE_STATE(IN_HANDLER);
 			lcd_display_message_fullscreen_P(MSG_FIND_BED_OFFSET_AND_SKEW_LINE1);
diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp
index 532e3cd6..5a020741 100644
--- a/Firmware/ultralcd.cpp
+++ b/Firmware/ultralcd.cpp
@@ -1114,13 +1114,14 @@ void lcd_commands()
 			enquecommand_P(PSTR("G1 Z10 F1300.000"));
 			enquecommand_P(PSTR("G1 X10 Y180 F4000")); //home X axis
 			enquecommand_P(PSTR("M84"));// disable motors
+			lcd_timeoutToStatus = millis() - 1; //if user dont confirm live adjust Z value by pressing the knob, we are saving last value by timeout to status screen
 			lcd_commands_step = 1;
 		}
 		if (lcd_commands_step == 1 && !blocks_queued() && cmd_buffer_empty())
 		{
 			lcd_setstatuspgm(WELCOME_MSG);
 			lcd_commands_step = 0;
-			lcd_commands_type = 0;
+			lcd_commands_type = 0;			
 			if (eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE) == 1) {
 				lcd_wizard(10);
 			}
@@ -3577,7 +3578,9 @@ void lcd_wizard(int state) {
 		case 10: //repeat first layer cal.?
 			wizard_event = lcd_show_multiscreen_message_yes_no_and_wait_P(MSG_WIZARD_REPEAT_V2_CAL, false);
 			if (wizard_event) {
+				//reset status and live adjust z value in eeprom
 				calibration_status_store(CALIBRATION_STATUS_LIVE_ADJUST);
+				EEPROM_save_B(EEPROM_BABYSTEP_Z, 0);
 				lcd_show_fullscreen_message_and_wait_P(MSG_WIZARD_CLEAN_HEATBED);
 				state = 9;
 			}
diff --git a/Firmware/ultralcd_implementation_hitachi_HD44780.h b/Firmware/ultralcd_implementation_hitachi_HD44780.h
index 710de49f..3774bf62 100644
--- a/Firmware/ultralcd_implementation_hitachi_HD44780.h
+++ b/Firmware/ultralcd_implementation_hitachi_HD44780.h
@@ -1205,14 +1205,12 @@ static void lcd_implementation_drawmenu_sdfile_selected(uint8_t row, const char*
 
     lcd.setCursor(0, row);
     lcd.print('>');
-
     int i = 1;
     int j = 0;
     char* longFilenameTMP = longFilename;
 
     while((c = *longFilenameTMP) != '\0')
     {
-
         lcd.setCursor(i, row);
         lcd.print(c);
         i++;
@@ -1223,6 +1221,7 @@ static void lcd_implementation_drawmenu_sdfile_selected(uint8_t row, const char*
           longFilenameTMP = longFilename + j;          
           n = LCD_WIDTH - 1;
           for(int g = 0; g<300 ;g++){
+			  manage_heater();
             if(LCD_CLICKED || ( enc_dif != encoderDiff )){
 				longFilenameTMP = longFilename;
 				*(longFilenameTMP + LCD_WIDTH - 2) = '\0';