diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm
index 2d851669879..66e16b77487 100644
--- a/code/game/machinery/doors/windowdoor.dm
+++ b/code/game/machinery/doors/windowdoor.dm
@@ -183,6 +183,11 @@
take_damage(round(Proj.damage / 2))
..()
+/obj/machinery/door/window/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
+ if(exposed_temperature > T0C + 800)
+ take_damage(round(exposed_volume / 200))
+ ..()
+
//When an object is thrown at the window
/obj/machinery/door/window/hitby(AM as mob|obj)
diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm
index 1284b9b0aaf..b7a263110f3 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -218,18 +218,17 @@
state = (state == 0 ? 1 : 0)
user << (state == 1 ? "You pry the window into the frame." : "You pry the window out of the frame.")
- else if(istype(I, /obj/item/weapon/weldingtool))
+ else if(istype(I, /obj/item/weapon/weldingtool) && user.a_intent == "help")
var/obj/item/weapon/weldingtool/WT = I
- if(user.a_intent == "help") //so you can still break windows with welding tools
- if(health < maxhealth)
- if(WT.remove_fuel(0,user))
- user << "You begin repairing [src]..."
- playsound(loc, 'sound/items/Welder.ogg', 40, 1)
- if(do_after(user, 40))
- health = maxhealth
- playsound(loc, 'sound/items/Welder2.ogg', 50, 1)
- else
- user << "[src] is already in good condition!"
+ if(health < maxhealth)
+ if(WT.remove_fuel(0,user))
+ user << "You begin repairing [src]..."
+ playsound(loc, 'sound/items/Welder.ogg', 40, 1)
+ if(do_after(user, 40))
+ health = maxhealth
+ playsound(loc, 'sound/items/Welder2.ogg', 50, 1)
+ else
+ user << "[src] is already in good condition!"
update_nearby_icons()
else if(istype(I, /obj/item/weapon/wrench) && !anchored)