diff --git a/code/game/dna.dm b/code/game/dna.dm
index 86357542466..98586486e0c 100644
--- a/code/game/dna.dm
+++ b/code/game/dna.dm
@@ -451,14 +451,10 @@
|| locate(/obj/machinery/computer/cloning, get_step(src, EAST)) \
|| locate(/obj/machinery/computer/cloning, get_step(src, WEST)))
- if(!occupant.key && occupant.mind)
- for(var/mob/dead/observer/ghost in player_list)
- if(ghost.mind == occupant.mind)
- if(ghost.can_reenter_corpse)
- ghost << "Your corpse has been placed into a cloning scanner. Return to your body if you want to be cloned! (Verbs -> Ghost -> Re-enter corpse)"
- ghost << sound('sound/effects/genetics.ogg')
- break
-
+ var/mob/dead/observer/ghost = occupant.get_ghost()
+ if(ghost)
+ ghost << "Your corpse has been placed into a cloning scanner. Return to your body if you want to be cloned! (Verbs -> Ghost -> Re-enter corpse)"
+ ghost << sound('sound/effects/genetics.ogg')
return 1
/obj/machinery/dna_scannernew/proc/open(mob/user)
diff --git a/code/modules/mob/living/simple_animal/friendly/drone.dm b/code/modules/mob/living/simple_animal/friendly/drone.dm
index 030ee9ca5b0..a0cb9eafb9b 100644
--- a/code/modules/mob/living/simple_animal/friendly/drone.dm
+++ b/code/modules/mob/living/simple_animal/friendly/drone.dm
@@ -78,7 +78,7 @@
switch(d_input)
if("Reactivate")
var/mob/dead/observer/G = get_ghost()
- if(!client && !G)
+ if(!client && (!G || !G.client))
var/list/faux_gadgets = list("hypertext inflator","failsafe directory","DRM switch","stack initializer",\
"anti-freeze capacitor","data stream diode","TCP bottleneck","supercharged I/O bolt",\
"tradewind stablizer","radiated XML cable","registry fluid tank","open-source debunker")
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index 918437895bb..e26a681c46a 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -882,7 +882,7 @@ var/list/slot_equipment_priority = list( \
/mob/proc/get_ghost(even_if_they_cant_reenter = 0)
if(mind)
- for(var/mob/dead/observer/G in player_list)
+ for(var/mob/dead/observer/G in dead_mob_list)
if(G.mind == mind)
if(G.can_reenter_corpse || even_if_they_cant_reenter)
return G