diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm
index 0c563215c73..fad3035563f 100644
--- a/code/game/objects/items/weapons/tools.dm
+++ b/code/game/objects/items/weapons/tools.dm
@@ -261,6 +261,8 @@
//Removes fuel from the welding tool. If a mob is passed, it will perform an eyecheck on the mob. This should probably be renamed to use()
/obj/item/weapon/weldingtool/proc/remove_fuel(var/amount = 1, var/mob/M = null)
+ if(!welding)
+ return 0
if(get_fuel() >= amount)
reagents.remove_reagent("fuel", amount)
if(M)
@@ -291,7 +293,7 @@
var/turf/T = get_turf(src)
//If we're turning it on
if(set_welding && !welding)
- if (remove_fuel(1))
+ if (get_fuel() > 0)
if(M)
M << "You switch the [src] on."
else if(T)
diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm
index 13b0ae81ec7..4414535d5af 100644
--- a/code/game/objects/structures/crates_lockers/closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets.dm
@@ -227,8 +227,11 @@
if(istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W
if(!WT.remove_fuel(0,user))
- user << "You need more welding fuel to complete this task."
- return
+ if(!WT.isOn())
+ return
+ else
+ user << "You need more welding fuel to complete this task."
+ return
new /obj/item/stack/material/steel(src.loc)
for(var/mob/M in viewers(src))
M.show_message("\The [src] has been cut apart by [user] with \the [WT].", 3, "You hear welding.", 2)
@@ -246,8 +249,11 @@
else if(istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W
if(!WT.remove_fuel(0,user))
- user << "You need more welding fuel to complete this task."
- return
+ if(!WT.isOn())
+ return
+ else
+ user << "You need more welding fuel to complete this task."
+ return
src.welded = !src.welded
src.update_icon()
for(var/mob/M in viewers(src))