diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index 2f7e7ea1208..3feecfb6bb4 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -881,14 +881,15 @@ About the new airlock wires panel:
user << "You begin [welded ? "unwelding":"welding"] the airlock..."
playsound(loc, 'sound/items/Welder2.ogg', 40, 1)
if(do_after(user,40,5,1))
- if(W.remove_fuel(0,user))
- playsound(loc, 'sound/items/welder.ogg', 50, 1)
- welded = !welded
- user << "You [welded ? "welded the airlock shut":"unwelded the airlock"]"
- update_icon()
- user.visible_message("[src] has been [welded? "welded shut":"unwelded"] by [user.name].")
- else
- user << "You need more welding fuel to complete this task."
+ if(!density && !operating)//Door must be closed to weld.
+ if(W.remove_fuel(0,user))
+ playsound(loc, 'sound/items/welder.ogg', 50, 1)
+ welded = !welded
+ user << "You [welded ? "welded the airlock shut":"unwelded the airlock"]"
+ update_icon()
+ user.visible_message("[src] has been [welded? "welded shut":"unwelded"] by [user.name].")
+ else
+ user << "You need more welding fuel to complete this task."
return
else if(istype(C, /obj/item/weapon/screwdriver))
src.p_open = !( src.p_open )
diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm
index de0021c4f96..29725327057 100644
--- a/code/game/objects/structures/crates_lockers/closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets.dm
@@ -179,13 +179,17 @@
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
- new /obj/item/stack/sheet/metal(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)
- qdel(src)
+ user << "You begin cutting the [src] apart..."
+ playsound(loc, 'sound/items/Welder2.ogg', 40, 1)
+ if(do_after(user,40,5,1))
+ if(!WT.remove_fuel(0,user))
+ user << "You need more welding fuel to complete this task."
+ return
+ playsound(loc, 'sound/items/welder.ogg', 50, 1)
+ new /obj/item/stack/sheet/metal(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)
+ qdel(src)
return
if(isrobot(user))