diff --git a/.travis.yml b/.travis.yml
index f12b1e89183e706685de5798c20436d3b089625c..f3ccc3247b69dbd20fbd041603ee2cfb76b52273 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -109,7 +109,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 AUTOTEMP
+  - opt_enable_adv EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES AUTOTEMP G38_PROBE_TARGET
   - build_marlin
   #
   # Test MESH_BED_LEVELING feature, with LCD
diff --git a/Marlin/Conditionals_LCD.h b/Marlin/Conditionals_LCD.h
index deb89fb51f9af9cc69b17a95d5cf75dbcd799320..4dcda59cd337277f2be1f04d5925f3e5cb437055 100644
--- a/Marlin/Conditionals_LCD.h
+++ b/Marlin/Conditionals_LCD.h
@@ -307,7 +307,10 @@
     #endif
   #endif
 
-  #ifndef BOOTSCREEN_TIMEOUT
+  // Boot screens
+  #if DISABLED(ULTRA_LCD)
+    #undef SHOW_BOOTSCREEN
+  #elif !defined(BOOTSCREEN_TIMEOUT)
     #define BOOTSCREEN_TIMEOUT 2500
   #endif
 
diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp
index 6f52f208d7a366fe72f87aaec8dffdc3254649cb..9fba4e1d2e8b1720ecb13c821fa2830ec7a40028 100644
--- a/Marlin/Marlin_main.cpp
+++ b/Marlin/Marlin_main.cpp
@@ -6256,7 +6256,11 @@ inline void gcode_M17() {
   /**
    * M23: Open a file
    */
-  inline void gcode_M23() { card.openFile(parser.string_arg, true); }
+  inline void gcode_M23() {
+    // Simplify3D includes the size, so zero out all spaces (#7227)
+    for (char *fn = parser.string_arg; *fn; ++fn) if (*fn == ' ') *fn = '\0';
+    card.openFile(parser.string_arg, true); 
+  }
 
   /**
    * M24: Start or Resume SD Print
@@ -10524,8 +10528,8 @@ void process_next_command() {
 
       #if ENABLED(G38_PROBE_TARGET)
         case 38: // G38.2 & G38.3
-          if (subcode == 2 || subcode == 3)
-            gcode_G38(subcode == 2);
+          if (parser.subcode == 2 || parser.subcode == 3)
+            gcode_G38(parser.subcode == 2);
           break;
       #endif
 
diff --git a/Marlin/gcode.cpp b/Marlin/gcode.cpp
index 85b3a194ca90d8c6d0f8bc3be953a064d8d90dcc..edeb00e226a01c1de5669fc48333e6c6516da079 100644
--- a/Marlin/gcode.cpp
+++ b/Marlin/gcode.cpp
@@ -46,7 +46,7 @@ char *GCodeParser::command_ptr,
 char GCodeParser::command_letter;
 int GCodeParser::codenum;
 #if USE_GCODE_SUBCODES
-  int GCodeParser::subcode;
+  uint8_t GCodeParser::subcode;
 #endif
 
 #if ENABLED(FASTER_GCODE_PARSER)
diff --git a/Marlin/gcode.h b/Marlin/gcode.h
index 7b585764064f5c50c67e8349cab093923ef08efb..ace84d8de524c5b1f3b984f54e1d589346e5f554 100644
--- a/Marlin/gcode.h
+++ b/Marlin/gcode.h
@@ -91,7 +91,7 @@ public:
   static char command_letter;             // G, M, or T
   static int codenum;                     // 123
   #if USE_GCODE_SUBCODES
-    static int subcode;                   // .1
+    static uint8_t subcode;               // .1
   #endif
 
   #if ENABLED(DEBUG_GCODE_PARSER)