diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm
index 72910f14cca..6a33429f4a3 100644
--- a/code/game/objects/items/devices/paicard.dm
+++ b/code/game/objects/items/devices/paicard.dm
@@ -225,7 +225,7 @@
/obj/item/device/paicard/Topic(href, href_list)
- if(!usr || usr.stat)
+ if(!usr || usr.stat || src.loc != usr.loc || pai.canmove || pai.resting)
return
if(href_list["setdna"])
diff --git a/code/modules/mob/living/silicon/pai/death.dm b/code/modules/mob/living/silicon/pai/death.dm
index ac8efb20217..d48134641ea 100644
--- a/code/modules/mob/living/silicon/pai/death.dm
+++ b/code/modules/mob/living/silicon/pai/death.dm
@@ -3,12 +3,13 @@
if(canmove || resting)
var/turf/T = get_turf_or_move(loc)
for (var/mob/M in viewers(T))
- M.show_message("\red A low buzz emanates from [src] as it loses power and falls to the ground, motionless.", 3, "\red You sense the faint smell of burned plastic, and hear a low buzzing noise.", 2)
- var/obj/effect/decal/cleanable/deadpai = new /obj/effect/decal/cleanable/robot_debris(loc)
- deadpai.name = "pAI debris"
- deadpai.desc = "The unfortunate remains of some poor personal AI device. Somebody should clean this up."
- deadpai.icon = 'icons/mob/pai.dmi'
- deadpai.icon_state = "[chassis]_dead"
+ M.show_message("\red [src] emits a dull beep before it loses power and collapses.", 3, "\red You hear a dull beep followed by the sound of glass crunching.", 2)
+ name = "pAI debris"
+ desc = "The unfortunate remains of some poor personal AI device."
+ icon_state = "[chassis]_dead"
+ else
+ card.overlays.Cut()
+ card.overlays += "pai-off"
stat = DEAD
canmove = 0
if(blind) blind.layer = 0
diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm
index 385a38fcf5a..c3216236c50 100644
--- a/code/modules/mob/living/silicon/pai/pai.dm
+++ b/code/modules/mob/living/silicon/pai/pai.dm
@@ -450,7 +450,10 @@
return
/mob/living/silicon/pai/start_pulling(var/atom/movable/AM)
- src << "You are far too small to pull anything!"
+ if(stat || sleeping || paralysis || weakened)
+ return
+ if(istype(AM,/obj/item))
+ src << "You are far too small to pull anything!"
return
/mob/living/silicon/pai/examine()