diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index f2465145808..3e1c3207a87 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -70,6 +70,7 @@
// the world.time since the mob has been brigged, or -1 if not at all
var/brigged_since = -1
+ var/suicided = FALSE
New(var/key)
src.key = key
diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm
index ccfa885a5d2..dbe860ec0cd 100644
--- a/code/game/machinery/cloning.dm
+++ b/code/game/machinery/cloning.dm
@@ -203,6 +203,9 @@
if(clonemind.active) //somebody is using that mind
if(ckey(clonemind.key) != R.ckey)
return 0
+ if(clonemind.suicided) // and stay out!
+ malfunction(go_easy = 0)
+ return -1 // Flush the record
else
// get_ghost() will fail if they're unable to reenter their body
var/mob/dead/observer/G = clonemind.get_ghost()
diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm
index a95fee5fe2f..1eef8430d7b 100644
--- a/code/game/machinery/computer/cloning.dm
+++ b/code/game/machinery/computer/cloning.dm
@@ -372,7 +372,7 @@
scantemp = "Error: No signs of intelligence detected."
nanomanager.update_uis(src)
return
- if(subject.suiciding == 1 && src.scanner.scan_level < 2)
+ if(subject.suiciding)
scantemp = "Error: Subject's brain is not responding to scanning stimuli."
nanomanager.update_uis(src)
return
diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm
index 8a043dbf591..2221455c5a5 100644
--- a/code/modules/mob/living/death.dm
+++ b/code/modules/mob/living/death.dm
@@ -1,6 +1,9 @@
/mob/living/death(gibbed)
blinded = max(blinded, 1)
+ if(suiciding)
+ mind.suicided = TRUE
+
clear_fullscreens()
update_action_buttons_icon()