diff --git a/code/datums/brain_damage/phobia.dm b/code/datums/brain_damage/phobia.dm
index 279118d877..8010f5dc6f 100644
--- a/code/datums/brain_damage/phobia.dm
+++ b/code/datums/brain_damage/phobia.dm
@@ -83,13 +83,19 @@
return
if(HAS_TRAIT(owner, TRAIT_FEARLESS))
return
+
+ var/matches = FALSE
+ var/mainsource
for(var/word in trigger_words)
- var/regex/reg = regex("(\\b|\\A)[REGEX_QUOTE(word)]'?s*(\\b|\\Z)", "i")
+ var/regex/reg = regex("(\\b|\\A)[REGEX_QUOTE(word)]'?s*(\\b|\\Z)", "ig")
if(findtext(hearing_args[HEARING_RAW_MESSAGE], reg))
- addtimer(CALLBACK(src, .proc/freak_out, null, word), 10) //to react AFTER the chat message
- hearing_args[HEARING_RAW_MESSAGE] = reg.Replace(hearing_args[HEARING_RAW_MESSAGE], "$1")
- break
+ hearing_args[HEARING_RAW_MESSAGE] = reg.Replace(hearing_args[HEARING_RAW_MESSAGE], "$0")
+ matches = TRUE
+ mainsource = word
+
+ if(matches)
+ addtimer(CALLBACK(src, .proc/freak_out, null, mainsource), 10) //to react AFTER the chat message
/datum/brain_trauma/mild/phobia/handle_speech(datum/source, list/speech_args)
if(HAS_TRAIT(owner, TRAIT_FEARLESS))