diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm
index bc24e4bf83..737f71a978 100644
--- a/code/game/objects/items/devices/paicard.dm
+++ b/code/game/objects/items/devices/paicard.dm
@@ -22,7 +22,8 @@
/obj/item/paicard/Destroy()
//Will stop people throwing friend pAIs into the singularity so they can respawn
SSpai.pai_card_list -= src
- QDEL_NULL(pai)
+ if (!QDELETED(pai))
+ QDEL_NULL(pai)
return ..()
/obj/item/paicard/attack_self(mob/user)
@@ -90,7 +91,7 @@
to_chat(pai, "Byte by byte you lose your sense of self.")
to_chat(pai, "Your mental faculties leave you.")
to_chat(pai, "oblivion... ")
- removePersonality()
+ qdel(pai)
if(href_list["wires"])
var/wire = text2num(href_list["wires"])
if(pai.radio)
@@ -122,11 +123,6 @@
playsound(loc, 'sound/effects/pai_boot.ogg', 50, 1, -1)
audible_message("\The [src] plays a cheerful startup noise!")
-/obj/item/paicard/proc/removePersonality()
- QDEL_NULL(pai)
- cut_overlays()
- add_overlay("pai-off")
-
/obj/item/paicard/proc/setEmotion(emotion)
if(pai)
src.cut_overlays()
diff --git a/code/modules/mob/living/silicon/pai/death.dm b/code/modules/mob/living/silicon/pai/death.dm
index a75089ed68..f558ff3907 100644
--- a/code/modules/mob/living/silicon/pai/death.dm
+++ b/code/modules/mob/living/silicon/pai/death.dm
@@ -3,8 +3,6 @@
return
stat = DEAD
canmove = 0
- card.removePersonality()
- card.forceMove(loc)
update_sight()
clear_fullscreens()
diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm
index 29ae671d03..0135fca88e 100644
--- a/code/modules/mob/living/silicon/pai/pai.dm
+++ b/code/modules/mob/living/silicon/pai/pai.dm
@@ -90,6 +90,11 @@
return FALSE
/mob/living/silicon/pai/Destroy()
+ if (loc != card)
+ card.forceMove(drop_location())
+ card.pai = null
+ card.cut_overlays()
+ card.add_overlay("pai-off")
GLOB.pai_list -= src
return ..()
diff --git a/code/modules/mob/living/silicon/pai/pai_shell.dm b/code/modules/mob/living/silicon/pai/pai_shell.dm
index ce2605e2cf..41bd62ea16 100644
--- a/code/modules/mob/living/silicon/pai/pai_shell.dm
+++ b/code/modules/mob/living/silicon/pai/pai_shell.dm
@@ -57,7 +57,7 @@
if(client)
client.perspective = EYE_PERSPECTIVE
client.eye = card
- var/turf/T = get_turf(src)
+ var/turf/T = drop_location()
card.forceMove(T)
forceMove(card)
canmove = FALSE