diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm
index 92ff74bd2c7..ecb20c6b415 100644
--- a/code/modules/mob/living/carbon/human/say.dm
+++ b/code/modules/mob/living/carbon/human/say.dm
@@ -115,6 +115,8 @@
message = dd_replacetext(message, ".", "")
message = lowertext(message)
*/
+ if (src.slurring)
+ message = slur(message)
..(message)
/mob/living/carbon/human/say_understands(var/other)
diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm
index c292aaaa67f..d1bb642f3f3 100644
--- a/code/modules/mob/mob_helpers.dm
+++ b/code/modules/mob/mob_helpers.dm
@@ -185,6 +185,28 @@ proc/hasorgans(A)
p++
return t
+proc/slur(phrase)
+ phrase = html_decode(phrase)
+ var/leng=lentext(phrase)
+ var/counter=lentext(phrase)
+ var/newphrase=""
+ var/newletter=""
+ while(counter>=1)
+ newletter=copytext(phrase,(leng-counter)+1,(leng-counter)+2)
+ if(rand(1,3)==3)
+ if(lowertext(newletter)=="o") newletter="u"
+ if(lowertext(newletter)=="s") newletter="ch"
+ if(lowertext(newletter)=="a") newletter="ah"
+ if(lowertext(newletter)=="c") newletter="k"
+ switch(rand(1,15))
+ if(1,3,5,8) newletter="[lowertext(newletter)]"
+ if(2,4,6,15) newletter="[uppertext(newletter)]"
+ if(7) newletter+="'"
+ //if(9,10) newletter="[newletter]"
+ //if(11,12) newletter="[newletter]"
+ //if(13) newletter="[newletter]"
+ newphrase+="[newletter]";counter-=1
+ return newphrase
/proc/stutter(n)
var/te = html_decode(n)
@@ -382,4 +404,4 @@ var/list/intents = list("help","disarm","grab","hurt")
if(a_intent == "hurt")
hud_used.action_intent.icon_state = "harm"
else
- hud_used.action_intent.icon_state = "help"
+ hud_used.action_intent.icon_state = "help"