diff --git a/package.json b/package.json
index 1e06ecc0d1090c4e240812eeb428599a793684ac..c2f4f8576f78931066f75f586483c1f52a59860f 100644
--- a/package.json
+++ b/package.json
@@ -38,6 +38,7 @@
     "command-line-args": "^4.0.1",
     "command-line-usage": "^4.0.0",
     "discord.js": "^11.1.0",
+    "escape-string-regexp": "^1.0.5",
     "js-yaml": "^3.8.1",
     "marked": "^0.3.6",
     "matrix-appservice-bridge": "^1.4.0",
diff --git a/src/bot.ts b/src/bot.ts
index 32b8e986b301064394519c06f45b5b8f3c86f812..1c870cb3d5b47719d06de69182a952ddbfb7f978 100644
--- a/src/bot.ts
+++ b/src/bot.ts
@@ -9,6 +9,7 @@ import * as Bluebird from "bluebird";
 import * as mime from "mime";
 import * as marked from "marked";
 import * as path from "path";
+import * as escapeStringRegexp from "escape-string-regexp";
 
 // Due to messages often arriving before we get a response from the send call,
 // messages get delayed from discord.
@@ -240,7 +241,7 @@ export class DiscordBot {
 
   private HandleMentions(body: string, members: Discord.GuildMember[]): string {
     for (const member of members) {
-      body = body.replace(new RegExp(member.displayName, "g"), `<@!${member.id}>`);
+      body = body.replace(new RegExp(escapeStringRegexp(member.displayName), "g"), `<@!${member.id}>`);
     }
     return body;
   }