diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index 14462a93f6..85e05cf13d 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -509,9 +509,11 @@ var/list/admin_verbs_event_manager = list(
if(choice == "Show 'em!" && mob.plane_holder)
mob.plane_holder.set_vis(VIS_GHOSTS,TRUE)
+ usr.see_invisible = SEE_INVISIBLE_CULT
to_chat(src,"Ghosts are now visible (while in this mob).")
else if(mob.plane_holder)
mob.plane_holder.set_vis(VIS_GHOSTS,FALSE)
+ usr.see_invisible = initial(mob.see_invisible)
to_chat(src,"Ghosts are now hidden (while in this mob).")
/client/proc/invisimin()
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index fd6f83ef44..63e79eb67c 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -15,6 +15,7 @@
canmove = 0
blinded = 0
anchored = 1 // don't get pushed around
+ invisibility = INVISIBILITY_OBSERVER
var/can_reenter_corpse
var/datum/hud/living/carbon/hud = null // hud
var/bootime = 0
@@ -661,7 +662,8 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
else
src << "You are now visible!"
- plane = PLANE_GHOSTS ? PLANE_WORLD : PLANE_GHOSTS
+ plane = (plane == PLANE_GHOSTS) ? PLANE_WORLD : PLANE_GHOSTS
+ invisibility = (plane == PLANE_WORLD) ? 0 : INVISIBILITY_OBSERVER
// Give the ghost a cult icon which should be visible only to itself
toggle_icon("cult")