diff --git a/modular_citadel/code/game/machinery/cryopod.dm b/modular_citadel/code/game/machinery/cryopod.dm
index 0c82a210..f8e8665e 100644
--- a/modular_citadel/code/game/machinery/cryopod.dm
+++ b/modular_citadel/code/game/machinery/cryopod.dm
@@ -306,23 +306,6 @@
announcer.announce("CRYOSTORAGE", mob_occupant.real_name, announce_rank, announce_job_title, list())
visible_message("\The [src] hums and hisses as it moves [mob_occupant.real_name] into storage.")
-
- for(var/obj/item/W in mob_occupant.GetAllContents())
- if(W.loc.loc && (( W.loc.loc == loc ) || (W.loc.loc == control_computer)))
- continue//means we already moved whatever this thing was in
- //I'm a professional, okay
- for(var/T in preserve_items)
- if(istype(W, T))
- if(control_computer && control_computer.allow_items)
- control_computer.frozen_items += W
- mob_occupant.transferItemToLoc(W, control_computer, TRUE)
- else
- mob_occupant.transferItemToLoc(W, loc, TRUE)
-
- for(var/obj/item/W in mob_occupant.GetAllContents())
- qdel(W)//because we moved all items to preserve away
- //and yes, this totally deletes their bodyparts one by one, I just couldn't bother
-
if(iscyborg(mob_occupant))
var/mob/living/silicon/robot/R = occupant
if(!istype(R)) return ..()
@@ -330,6 +313,24 @@
R.contents -= R.mmi
qdel(R.mmi)
+ QDEL_NULL_LIST(R.contents)
+ else
+ for(var/obj/item/W in mob_occupant.GetAllContents())
+ if(W.loc.loc && (( W.loc.loc == loc ) || (W.loc.loc == control_computer)))
+ continue//means we already moved whatever this thing was in
+ //I'm a professional, okay
+ for(var/T in preserve_items)
+ if(istype(W, T))
+ if(control_computer && control_computer.allow_items)
+ control_computer.frozen_items += W
+ mob_occupant.transferItemToLoc(W, control_computer, TRUE)
+ else
+ mob_occupant.transferItemToLoc(W, loc, TRUE)
+
+ for(var/obj/item/W in mob_occupant.GetAllContents())
+ qdel(W)//because we moved all items to preserve away
+ //and yes, this totally deletes their bodyparts one by one, I just couldn't bother
+
// Ghost and delete the mob.
if(!mob_occupant.get_ghost(1))
mob_occupant.ghostize(0) // Players who cryo out may not re-enter the round
@@ -387,7 +388,7 @@
if(target.mind.special_role == ROLE_TRAITOR)
alert("You're a Traitor![generic_plsnoleave_message]")
caught = TRUE
-
+
if(caught)
target.client.cryo_warned = world.time
return