diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp
index 87e955e47e..1034e98690 100644
--- a/Marlin/Marlin_main.cpp
+++ b/Marlin/Marlin_main.cpp
@@ -4175,7 +4175,7 @@ inline void gcode_G28() {
       ABL_VAR int abl_probe_index;
     #endif
 
-    #if HAS_SOFTWARE_ENDSTOPS
+    #if HAS_SOFTWARE_ENDSTOPS && ENABLED(PROBE_MANUALLY)
       ABL_VAR bool enable_soft_endstops = true;
     #endif
 
@@ -4599,7 +4599,6 @@ inline void gcode_G28() {
 
       #endif // AUTO_BED_LEVELING_3POINT
 
-
     #else // !PROBE_MANUALLY
 
       bool stow_probe_after_each = code_seen('E');
diff --git a/Marlin/fastio.h b/Marlin/fastio.h
index 9c1325e8a7..b172d8f6b5 100644
--- a/Marlin/fastio.h
+++ b/Marlin/fastio.h
@@ -138,7 +138,7 @@ typedef enum {
   }while(0)
 
 #define SET_COM(T,Q,V) do{ \
-    TCCR##T##Q = (TCCR##T##Q & ~(0x3 << COM1##Q##0) | (int(V) & 0x3) << COM1##Q##0); \
+    TCCR##T##Q = (TCCR##T##Q & ~(0x3 << COM1##Q##0)) | ((int(V) & 0x3) << COM1##Q##0); \
   }while(0)
 #define SET_COMA(T,V) SET_COM(T,A,V)
 #define SET_COMB(T,V) SET_COM(T,B,V)