diff --git a/.travis.yml b/.travis.yml
index e27c9c01a6c3b003c6d268fedd03f49bf2b6f7cb..e29f7f6d71f0b23d4487d4164834b566ab002b63 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -141,7 +141,7 @@ script:
   - restore_configs
   - opt_enable NUM_SERVOS Z_ENDSTOP_SERVO_NR Z_SERVO_ANGLES DEACTIVATE_SERVOS_AFTER_MOVE
   - opt_enable AUTO_BED_LEVELING_3POINT DEBUG_LEVELING_FEATURE EEPROM_SETTINGS EEPROM_CHITCHAT
-  - opt_enable_adv EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES
+  - opt_enable_adv EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES AUTOTEMP
   - build_marlin
   #
   # Test MESH_BED_LEVELING feature, with LCD
diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp
index fcf92c6775bf8baca171a8ec779ce360796a1a84..0e530b75c7a7b8f3618760b1bae7aff7bdfe115a 100644
--- a/Marlin/Marlin_main.cpp
+++ b/Marlin/Marlin_main.cpp
@@ -1182,10 +1182,7 @@ inline void get_serial_commands() {
             LCD_MESSAGEPGM(MSG_INFO_COMPLETED_PRINTS);
             set_led_color(0, 255, 0); // Green
             #if HAS_RESUME_CONTINUE
-              KEEPALIVE_STATE(PAUSED_FOR_USER);
-              wait_for_user = true;
-              while (wait_for_user) idle();
-              KEEPALIVE_STATE(IN_HANDLER);
+              enqueue_and_echo_commands_P(PSTR("M0")); // end of the queue!
             #else
               safe_delay(1000);
             #endif
@@ -5762,10 +5759,6 @@ inline void gcode_M31() {
 
   SERIAL_ECHO_START;
   SERIAL_ECHOLNPAIR("Print time: ", buffer);
-
-  #if ENABLED(AUTOTEMP)
-    thermalManager.autotempShutdown();
-  #endif
 }
 
 #if ENABLED(SDSUPPORT)
diff --git a/Marlin/cardreader.cpp b/Marlin/cardreader.cpp
index ab4b659dae95b0c4f86bfdb8fb645165c7108cf3..a37389e45780f6a1416bcabc1d5702197c3f59de 100644
--- a/Marlin/cardreader.cpp
+++ b/Marlin/cardreader.cpp
@@ -552,7 +552,7 @@ void CardReader::checkautostart(bool force) {
 
   bool found = false;
   while (root.readDir(p, NULL) > 0) {
-    for (int8_t i = 0; i < (int8_t)strlen((char*)p.name); i++) p.name[i] = tolower(p.name[i]);
+    for (int8_t i = (int8_t)strlen((char*)p.name); i--;) p.name[i] = tolower(p.name[i]);
     if (p.name[9] != '~' && strncmp((char*)p.name, autoname, 5) == 0) {
       openAndPrintFile(autoname);
       found = true;
diff --git a/Marlin/language_en.h b/Marlin/language_en.h
index 80f17ea53e6f4203045b361c709ed2fabe399d0c..78d674c7150e3b6797235ddbba995bc1eec0ff31 100644
--- a/Marlin/language_en.h
+++ b/Marlin/language_en.h
@@ -355,7 +355,7 @@
   #define MSG_DWELL                           _UxGT("Sleep...")
 #endif
 #ifndef MSG_USERWAIT
-  #define MSG_USERWAIT                        _UxGT("Wait for user...")
+  #define MSG_USERWAIT                        _UxGT("Click to resume...")
 #endif
 #ifndef MSG_RESUMING
   #define MSG_RESUMING                        _UxGT("Resuming print")
diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp
index eb20c5a5fe06fb71bd93c06e45182f866bbebd8d..7a480b87a96befc328e64897cb1db15d293db916 100644
--- a/Marlin/temperature.cpp
+++ b/Marlin/temperature.cpp
@@ -25,9 +25,10 @@
  */
 
 #include "Marlin.h"
-#include "ultralcd.h"
 #include "temperature.h"
 #include "thermistortables.h"
+#include "ultralcd.h"
+#include "planner.h"
 #include "language.h"
 
 #if ENABLED(HEATER_0_USES_MAX6675)
@@ -1288,6 +1289,11 @@ void Temperature::init() {
 #endif // THERMAL_PROTECTION_HOTENDS || THERMAL_PROTECTION_BED
 
 void Temperature::disable_all_heaters() {
+
+  #if ENABLED(AUTOTEMP)
+    planner.autotemp_enabled = false;
+  #endif
+
   HOTEND_LOOP() setTargetHotend(0, e);
   setTargetBed(0);
 
diff --git a/Marlin/temperature.h b/Marlin/temperature.h
index f6ffd89e63eaebd1b2444cd50474d752dc42fad8..d37cb559314be5fe696dfc5a85fb09e971fff825 100644
--- a/Marlin/temperature.h
+++ b/Marlin/temperature.h
@@ -27,7 +27,6 @@
 #ifndef TEMPERATURE_H
 #define TEMPERATURE_H
 
-#include "planner.h"
 #include "thermistortables.h"
 
 #include "MarlinConfig.h"
@@ -418,16 +417,6 @@ class Temperature {
      */
     static void updatePID();
 
-    #if ENABLED(AUTOTEMP)
-      static void autotempShutdown() {
-        if (planner.autotemp_enabled) {
-          planner.autotemp_enabled = false;
-          if (degTargetHotend(EXTRUDER_IDX) > planner.autotemp_min)
-            setTargetHotend(0, EXTRUDER_IDX);
-        }
-      }
-    #endif
-
     #if ENABLED(BABYSTEPPING)
 
       static void babystep_axis(const AxisEnum axis, const int distance) {
diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp
index e08633aa5548a055be6fc4e2dce6732567f1a4de..2ba3ee5bdc8d5adde5bf3dc5122dec0433911f48 100644
--- a/Marlin/ultralcd.cpp
+++ b/Marlin/ultralcd.cpp
@@ -702,8 +702,9 @@ void kill_screen(const char* lcd_msg) {
       clear_command_queue();
       quickstop_stepper();
       print_job_timer.stop();
-      #if ENABLED(AUTOTEMP)
-        thermalManager.autotempShutdown();
+      thermalManager.disable_all_heaters();
+      #if FAN_COUNT > 0
+        for (uint8_t i = 0; i < FAN_COUNT; i++) fanSpeeds[i] = 0;
       #endif
       wait_for_heatup = false;
       LCD_MESSAGEPGM(MSG_PRINT_ABORTED);