diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm
index b4846ecc76..3cd2ddef9f 100644
--- a/code/game/gamemodes/cult/ritual.dm
+++ b/code/game/gamemodes/cult/ritual.dm
@@ -527,7 +527,11 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
user << "\red You do not have enough space to write a proper rune."
var/list/runes = list("teleport", "itemport", "tome", "armor", "convert", "tear in reality", "emp", "drain", "seer", "raise", "obscure", "reveal", "astral journey", "manifest", "imbue talisman", "sacrifice", "wall", "freedom", "cultsummon", "deafen", "blind", "bloodboil", "communicate", "stun")
r = input("Choose a rune to scribe", "Rune Scribing") in runes //not cancellable.
- var/obj/effect/rune/R = new /obj/effect/rune
+ if(locate(/obj/effect/rune) in user.loc)
+ user << "There is already a rune in this location."
+ return
+
+ var/obj/effect/rune/R = new /obj/effect/rune(user.loc)
if(istype(user, /mob/living/carbon/human))
var/mob/living/carbon/human/H = user
R.blood_DNA = list()
diff --git a/code/modules/spells/general/rune_write.dm b/code/modules/spells/general/rune_write.dm
index c110a76ac1..c28289d60f 100644
--- a/code/modules/spells/general/rune_write.dm
+++ b/code/modules/spells/general/rune_write.dm
@@ -21,6 +21,10 @@
runerandom()
var/list/runes = list("Teleport", "Teleport Other", "Spawn a Tome", "Change Construct Type", "Convert", "EMP", "Drain Blood", "See Invisible", "Resurrect", "Hide Runes", "Reveal Runes", "Astral Journey", "Manifest a Ghost", "Imbue Talisman", "Sacrifice", "Wall", "Free Cultist", "Summon Cultist", "Deafen", "Blind", "BloodBoil", "Communicate", "Stun")
var/r = input(user, "Choose a rune to scribe", "Rune Scribing") in runes //not cancellable.
+ if(locate(/obj/effect/rune) in user.loc)
+ user << "There is already a rune in this location."
+ return
+
var/obj/effect/rune/R = new /obj/effect/rune(user.loc)
if(istype(user.loc,/turf))
var/area/A = get_area(user)