diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm
index d09f84a766f..baf991f9132 100644
--- a/code/game/objects/items/weapons/RCD.dm
+++ b/code/game/objects/items/weapons/RCD.dm
@@ -211,6 +211,11 @@
delay = 5 SECONDS
start_effect_type = /obj/effect/temp_visual/rcd_effect/reverse
+/datum/rcd_act/remove_user/can_act(atom/A, obj/item/rcd/rcd)
+ if(!..())
+ return FALSE
+ return A == rcd.loc
+
/obj/item/rcd
name = "rapid-construction-device (RCD)"
desc = "A device used to rapidly build and deconstruct walls, floors and airlocks."
@@ -343,11 +348,10 @@
/obj/item/rcd/suicide_act(mob/living/user)
user.Immobilize(10 SECONDS) // You cannot move.
flags |= NODROP // You cannot drop. You commit to die.
- var/turf/suicide_tile = get_turf(src)
if(mode == MODE_DECON)
user.visible_message("[user] points [src] at [user.p_their()] chest and pulls the trigger. It looks like [user.p_theyre()] trying to commit suicide!")
var/datum/rcd_act/remove_user/act = new()
- if(!act.try_act(suicide_tile, src, user))
+ if(!act.try_act(user, src, user))
flags &= ~NODROP
return SHAME
user.visible_message("[user] deconstructs [user.p_themselves()] with [src]!")
@@ -358,7 +362,7 @@
return OBLITERATION
user.visible_message("[user] puts the barrel of [src] into [user.p_their()] mouth and pulls the trigger. It looks like [user.p_theyre()] trying to commit suicide!")
- if(!interact_with_atom(suicide_tile, user, TRUE))
+ if(!interact_with_atom(get_turf(src), user, TRUE))
flags &= ~NODROP
return SHAME
user.visible_message("[user] explodes as [src] builds a structure inside [user.p_them()]!")