diff --git a/discord.go b/discord.go
index 95f530f2afe770eb25c12e88d83b86e871014e70..86375aa308501a3367c14a24203d02c9854a93a0 100644
--- a/discord.go
+++ b/discord.go
@@ -152,17 +152,7 @@ func discordHandleCreate(session *discordgo.Session, create *discordgo.MessageCr
 	}
 
 	msg.ParseMode = "MarkdownV2"
-	msg.Text = strings.ReplaceAll(msg.Text, ">", "\\>")
-	msg.Text = strings.ReplaceAll(msg.Text, "_", "\\_")
-	msg.Text = strings.ReplaceAll(msg.Text, "-", "\\-")
-	msg.Text = strings.ReplaceAll(msg.Text, "=", "\\=")
-	msg.Text = strings.ReplaceAll(msg.Text, "*", "\\*")
-	msg.Text = strings.ReplaceAll(msg.Text, "[", "\\[")
-	msg.Text = strings.ReplaceAll(msg.Text, "(", "\\(")
-	msg.Text = strings.ReplaceAll(msg.Text, "`", "\\`")
-	msg.Text = strings.ReplaceAll(msg.Text, ".", "\\.")
-	msg.Text = strings.ReplaceAll(msg.Text, "!", "\\!")
-	msg.Text = strings.ReplaceAll(msg.Text, "~", "\\~")
+	msg.Text = escapeMarkdown(msg.Text)
 	msg.Text = discordMakeHeader(create.Author) + msg.Text
 
 	for i, attachment := range create.Message.Attachments {
@@ -265,6 +255,21 @@ func discordMakeHeader(user *discordgo.User) string {
 	}
 
 	return strings.ReplaceAll(strings.ReplaceAll(config.Discord.NameFormat,
-		"$USER", user.Username),
+		"$USER", escapeMarkdown(user.Username)),
 		"$DISCRIMINATOR", user.Discriminator) + "\n"
 }
+
+func escapeMarkdown(str string) string {
+	str = strings.ReplaceAll(str, ">", "\\>")
+	str = strings.ReplaceAll(str, "_", "\\_")
+	str = strings.ReplaceAll(str, "-", "\\-")
+	str = strings.ReplaceAll(str, "=", "\\=")
+	str = strings.ReplaceAll(str, "*", "\\*")
+	str = strings.ReplaceAll(str, "[", "\\[")
+	str = strings.ReplaceAll(str, "(", "\\(")
+	str = strings.ReplaceAll(str, "`", "\\`")
+	str = strings.ReplaceAll(str, ".", "\\.")
+	str = strings.ReplaceAll(str, "!", "\\!")
+	str = strings.ReplaceAll(str, "~", "\\~")
+	return str
+}