diff --git a/code/game/objects/structures/guillotine.dm b/code/game/objects/structures/guillotine.dm
index 3c4875978a2..793e9e514b4 100644
--- a/code/game/objects/structures/guillotine.dm
+++ b/code/game/objects/structures/guillotine.dm
@@ -194,6 +194,28 @@
return TRUE
else
current_action = 0
+ if(iswelder(W))
+ var/obj/item/weldingtool/WT = W
+ if(!WT.remove_fuel(0, user))
+ return
+ to_chat(user, "You begin cutting \the [src] apart...")
+ playsound(loc, WT.usesound, 40, 1)
+ if(do_after(user, 150 * WT.toolspeed, 1, target = src))
+ if(!WT.isOn())
+ return
+ playsound(loc, WT.usesound, 50, 1)
+ visible_message("[user] slices apart \the [src].",
+ "You cut \the [src] apart with \the [WT].",
+ "You hear welding.")
+ var/turf/T = get_turf(src)
+ if (blade_sharpness == GUILLOTINE_BLADE_MAX_SHARP)
+ new /obj/item/stack/sheet/plasteel(T, 3)
+ else
+ new /obj/item/stack/sheet/plasteel(T, 2) //prevents reconstructing to sharpen the guillotine without additional plasteel
+ new /obj/item/stack/sheet/wood(T, 20)
+ new /obj/item/stack/cable_coil(T, 10)
+ qdel(src)
+ return
else
return ..()