diff --git a/src/bot.ts b/src/bot.ts
index b80cf607a01cef29199a2394b7d81c5e403a7d11..6f50a4967b9e9974e810e93e0bc49927f2f8f35c 100644
--- a/src/bot.ts
+++ b/src/bot.ts
@@ -123,7 +123,7 @@ export class DiscordBot {
   }
 
   public ProcessMatrixMsgEvent(event, guildId: string, channelId: string): Promise<any> {
-    let chan;
+    let chan: Discord.TextChannel;
     let embed;
     let botUser;
     const mxClient = this.bridge.getClientFactory().getClientAs();
@@ -174,6 +174,7 @@ export class DiscordBot {
       if (botUser) {
         return chan.sendEmbed(embed, opts);
       }
+      const body = this.HandleMentions(event.content.body, chan.members.array());
       return chan.sendMessage(event.content.body, opts);
     }).then((msg) => {
       this.sentMessages.push(msg.id);
@@ -196,6 +197,13 @@ export class DiscordBot {
     return "matrix-media." + mime.extension(content.info.mimetype);
   }
 
+  private HandleMentions(body: string, members: Discord.GuildMember[]): string {
+    for (const member of members) {
+      body = body.replace(new RegExp(member.displayName, "g"), `<@!${member.id}>`);
+    }
+    return body;
+  }
+
   private GetRoomIdsFromChannel(channel: Discord.Channel): Promise<string[]> {
     return this.bridge.getRoomStore().getEntriesByRemoteRoomData({
       discord_channel: channel.id,