diff --git a/code/__DEFINES/tools.dm b/code/__DEFINES/tools.dm
index d0204e1d013..e1dfa6b7aed 100644
--- a/code/__DEFINES/tools.dm
+++ b/code/__DEFINES/tools.dm
@@ -34,6 +34,8 @@
#define WELDER_FLOOR_SLICE_SUCCESS_MESSAGE to_chat(user, "You slice [src] clear of [get_turf(src)]!")
#define WELDER_ATTEMPT_FLOOR_WELD_MESSAGE user.visible_message("[user] begins welding [src] to [get_turf(src)]...", "You begin welding [src] to [get_turf(src)]...", "You hear welding.")
#define WELDER_FLOOR_WELD_SUCCESS_MESSAGE to_chat(user, "You weld [src] to [get_turf(src)]!")
+#define WELDER_ATTEMPT_UNWELD_MESSAGE user.visible_message("[user] begins cutting through the weld on [src]...", "You begin cutting through the weld on [src]...", "You hear welding.")
+#define WELDER_UNWELD_SUCCESS_MESSAGE to_chat(user, "You finish unwelding [src]!")
//Wrench messages
#define WRENCH_ANCHOR_MESSAGE user.visible_message("[user] tightens the bolts on [src]!", "You tighten the bolts on [src]!", "You hear ratcheting.")
diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm
index 4729f925a4f..09f8e03fa04 100644
--- a/code/game/machinery/doors/firedoor.dm
+++ b/code/game/machinery/doors/firedoor.dm
@@ -154,12 +154,18 @@
. = TRUE
if(!I.tool_use_check(user, 0))
return
- WELDER_ATTEMPT_WELD_MESSAGE
+ if(welded)
+ WELDER_ATTEMPT_UNWELD_MESSAGE
+ else
+ WELDER_ATTEMPT_WELD_MESSAGE
if(!I.use_tool(src, user, 40, volume = I.tool_volume))
return
if(!density) //In case someone opens it while it's getting welded
return
- WELDER_WELD_SUCCESS_MESSAGE
+ if(welded)
+ WELDER_UNWELD_SUCCESS_MESSAGE
+ else
+ WELDER_WELD_SUCCESS_MESSAGE
welded = !welded
update_icon()