diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm
index ac297b6ef8e..2eff528db17 100644
--- a/code/game/dna/dna_modifier.dm
+++ b/code/game/dna/dna_modifier.dm
@@ -186,6 +186,7 @@
put_in(L)
if(user.pulling == L)
user.stop_pulling()
+ QDEL_LIST_CONTENTS(L.grabbed_by)
return TRUE
/obj/machinery/dna_scannernew/attackby(obj/item/I, mob/user, params)
diff --git a/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm b/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm
index 0b83da81f33..2322549036a 100644
--- a/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm
+++ b/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm
@@ -38,6 +38,7 @@
return TRUE
visible_message("[user] puts [target] into [src].")
+ QDEL_LIST_CONTENTS(target.grabbed_by)
target.forceMove(src)
occupant = target
flash = "Machine ready."
diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm
index e14110c44de..7a4ae26d9cc 100644
--- a/code/game/machinery/Sleeper.dm
+++ b/code/game/machinery/Sleeper.dm
@@ -502,6 +502,7 @@
add_fingerprint(user)
if(user.pulling == L)
user.stop_pulling()
+ QDEL_LIST_CONTENTS(L.grabbed_by)
SStgui.update_uis(src)
/obj/machinery/sleeper/proc/permitted_check(atom/movable/O, mob/user)
diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm
index 4c8e2195ee1..509349e1e60 100644
--- a/code/game/machinery/adv_med.dm
+++ b/code/game/machinery/adv_med.dm
@@ -148,6 +148,7 @@
else
visible_message("[user] puts [H] into the body scanner.")
+ QDEL_LIST_CONTENTS(H.grabbed_by)
H.forceMove(src)
occupant = H
playsound(src, 'sound/machines/podclose.ogg', 5)
diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm
index eb528ea500d..02bc0b34b19 100644
--- a/code/game/machinery/cryopod.dm
+++ b/code/game/machinery/cryopod.dm
@@ -576,6 +576,7 @@
return
if(!E)
return
+ QDEL_LIST_CONTENTS(E.grabbed_by)
E.forceMove(src)
time_till_despawn = initial(time_till_despawn) / willing_factor
icon_state = occupied_icon_state
diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm
index 6d9740b90d1..9ac05ebf036 100644
--- a/code/game/machinery/rechargestation.dm
+++ b/code/game/machinery/rechargestation.dm
@@ -230,6 +230,7 @@
return
target.stop_pulling()
+ QDEL_LIST_CONTENTS(target.grabbed_by)
target.forceMove(src)
occupant = target
diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm
index 24739663be9..73b05491d0c 100644
--- a/code/game/machinery/suit_storage_unit.dm
+++ b/code/game/machinery/suit_storage_unit.dm
@@ -449,15 +449,18 @@
return TRUE
/obj/machinery/suit_storage_unit/proc/put_in(mob/user, mob/living/target)
- if(do_mob(user, target, 30))
- if(occupant || helmet || suit || storage)
- return
- if(target == user)
- user.visible_message("[user] slips into [src] and closes the door behind [user.p_them()]!", "You slip into [src]'s cramped space and shut its door.")
- else
- target.visible_message("[user] pushes [target] into [src] and shuts its door!", "[user] shoves you into [src] and shuts the door!")
- close_machine(target)
- add_fingerprint(user)
+ if(!do_mob(user, target, 30))
+ return
+ if(occupant || helmet || suit || storage)
+ return
+ if(target == user)
+ user.visible_message("[user] slips into [src] and closes the door behind [user.p_them()]!", "You slip into [src]'s cramped space and shut its door.")
+ else
+ target.visible_message("[user] pushes [target] into [src] and shuts its door!", "[user] shoves you into [src] and shuts the door!")
+ close_machine(target)
+ if(occupant == target)
+ QDEL_LIST_CONTENTS(target.grabbed_by)
+ add_fingerprint(user)
/obj/machinery/suit_storage_unit/proc/cook()
if(uv_cycles)
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
index 13f356d4a6d..f35ceb6ef5d 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
@@ -156,6 +156,7 @@
add_attack_logs(user, L, "put into a cryo cell at [COORD(src)].", ATKLOG_ALL)
if(user.pulling == L)
user.stop_pulling()
+ QDEL_LIST_CONTENTS(L.grabbed_by)
SStgui.update_uis(src)
return TRUE
diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
index 51b76dcf5e6..ae1de2d18b0 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
@@ -157,6 +157,7 @@
user.visible_message("[user] stuffs [victim] into [src]!")
else
return
+ QDEL_LIST_CONTENTS(victim.grabbed_by)
victim.forceMove(src)
occupant = victim
diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm
index b455b844486..50bc20252eb 100644
--- a/code/modules/recycling/disposal.dm
+++ b/code/modules/recycling/disposal.dm
@@ -221,6 +221,7 @@
add_attack_logs(user, target, "Disposal'ed", !!target.ckey ? null : ATKLOG_ALL)
else
return
+ QDEL_LIST_CONTENTS(target.grabbed_by)
target.forceMove(src)
for(var/mob/C in viewers(src))