diff --git a/bridge/config/config.go b/bridge/config/config.go
index 6f34131f..2cd53666 100644
--- a/bridge/config/config.go
+++ b/bridge/config/config.go
@@ -70,6 +70,7 @@ type Protocol struct {
 	UseAPI                 bool   // mattermost, slack
 	UseSASL                bool   // IRC
 	UseTLS                 bool   // IRC
+	UseFirstName           bool   // telegram
 }
 
 type ChannelOptions struct {
diff --git a/bridge/telegram/telegram.go b/bridge/telegram/telegram.go
index 32269241..8631f2f9 100644
--- a/bridge/telegram/telegram.go
+++ b/bridge/telegram/telegram.go
@@ -98,9 +98,14 @@ func (b *Btelegram) handleRecv(updates <-chan tgbotapi.Update) {
 			message.Text = message.Text + b.Config.EditSuffix
 		}
 		if message.From != nil {
-			username = message.From.FirstName
+			if b.Config.UseFirstName {
+				username = message.From.FirstName
+			}
 			if username == "" {
 				username = message.From.UserName
+				if username == "" {
+					username = message.From.FirstName
+				}
 			}
 			text = message.Text
 			channel = strconv.FormatInt(message.Chat.ID, 10)
diff --git a/matterbridge.toml.sample b/matterbridge.toml.sample
index de1304ad..0d4da80d 100644
--- a/matterbridge.toml.sample
+++ b/matterbridge.toml.sample
@@ -451,6 +451,12 @@ Token="Yourtokenhere"
 #See https://core.telegram.org/bots/api#html-style
 MessageFormat=""
 
+#If enabled use the "First Name" as username. If this is empty use the Username
+#If disabled use the "Username" as username. If this is empty use the First Name 
+#If all names are empty, username will be "unknown"
+#OPTIONAL (default false)
+UseFirstName=false
+
 #Disable sending of edits to other bridges
 #OPTIONAL (default false)
 EditDisable=false