diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm
index c62e0d41790..ea78bd77695 100644
--- a/code/_onclick/item_attack.dm
+++ b/code/_onclick/item_attack.dm
@@ -27,8 +27,11 @@
if(SEND_SIGNAL(src, COMSIG_ITEM_PRE_ATTACK, A, user, params) & COMPONENT_CANCEL_ATTACK_CHAIN)
return TRUE
if(is_hot(src) && A.reagents && !ismob(A))
- to_chat(user, "You heat [A] with [src].")
- A.reagents.temperature_reagents(is_hot(src))
+ var/reagent_temp = A.reagents.chem_temp
+ var/time = (reagent_temp / 10) / (is_hot(src) / 1000)
+ if(do_after_once(user, time, TRUE, user, TRUE, attempt_cancel_message = "You stop heating up [A]."))
+ to_chat(user, "You heat [A] with [src].")
+ A.reagents.temperature_reagents(is_hot(src))
return TRUE //return FALSE to avoid calling attackby after this proc does stuff
// No comment