diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp
index 9ed2f88c..795a7c56 100644
--- a/Firmware/Marlin_main.cpp
+++ b/Firmware/Marlin_main.cpp
@@ -693,7 +693,6 @@ void crashdet_detected(uint8_t mask)
 	st_synchronize();
 	static uint8_t crashDet_counter = 0;
 	bool automatic_recovery_after_crash = true;
-	bool yesno;
 
 	if (crashDet_counter++ == 0) {
 		crashDetTimer.start();
@@ -734,18 +733,25 @@ void crashdet_detected(uint8_t mask)
 	gcode_G28(true, true, false, false); //home X and Y
 	st_synchronize();
 
-	if(automatic_recovery_after_crash) 
-		yesno = true;
-	else 
-		yesno = lcd_show_fullscreen_message_yes_no_and_wait_P(_i("Crash detected. Resume print?"), false);
-	lcd_update_enable(true);
-	if (yesno)
-	{
+	if (automatic_recovery_after_crash) {
 		enquecommand_P(PSTR("CRASH_RECOVER"));
-	}
-	else
-	{
-		enquecommand_P(PSTR("CRASH_CANCEL"));
+	}else{
+		HotendTempBckp = degTargetHotend(active_extruder);
+		setTargetHotend(0, active_extruder);
+		bool yesno = lcd_show_fullscreen_message_yes_no_and_wait_P(_i("Crash detected. Resume print?"), false);
+		lcd_update_enable(true);
+		if (yesno)
+		{
+			char cmd1[10];
+			strcpy(cmd1, "M109 S");
+			strcat(cmd1, ftostr3(HotendTempBckp));
+			enquecommand(cmd1);
+			enquecommand_P(PSTR("CRASH_RECOVER"));
+		}
+		else
+		{
+			enquecommand_P(PSTR("CRASH_CANCEL"));
+		}
 	}
 }