diff --git a/printer_data/config/heatsoak.cfg b/printer_data/config/heatsoak.cfg
index 92d8b6a..2727919 100644
--- a/printer_data/config/heatsoak.cfg
+++ b/printer_data/config/heatsoak.cfg
@@ -73,7 +73,7 @@ gcode:
     SET_GCODE_VARIABLE MACRO=HEAT_SOAK VARIABLE=last_soak_temp_rate     VALUE=None
     SET_GCODE_VARIABLE MACRO=HEAT_SOAK VARIABLE=check_interval          VALUE=1.0
     SET_GCODE_VARIABLE MACRO=HEAT_SOAK VARIABLE=resume_trigger          VALUE=False
-    {% set is_print_active = printer['virtual_sdcard'].is_active or printer['virtual_sdcard'].file_position != 0.0 %}
+    {% set is_print_active = printer['virtual_sdcard'].is_active or printer['virtual_sdcard'].file_position != 0.0 or printer.idle_timeout.state == 'Printing' %}
     SET_GCODE_VARIABLE MACRO=HEAT_SOAK VARIABLE=was_print_active        VALUE={is_print_active}
 
     # start optional heater
@@ -276,7 +276,7 @@ gcode:
         {% if stage == "cancel" %}
             {% if heat_soak.cancel %}
                 {heat_soak.cancel}
-            {% elif printer['virtual_sdcard'].is_active %}
+            {% elif printer['virtual_sdcard'].is_active or printer.idle_timeout.state == 'Printing' %}
                 CANCEL_PRINT
             {% endif %}
         {% else %}
@@ -295,4 +295,4 @@ gcode:
     {% endif %}
 
     # save ending value of stage
-    SET_GCODE_VARIABLE MACRO=HEAT_SOAK VARIABLE=stage VALUE="'{stage}'"
\ No newline at end of file
+    SET_GCODE_VARIABLE MACRO=HEAT_SOAK VARIABLE=stage VALUE="'{stage}'"