diff --git a/mautrix_telegram/formatter.py b/mautrix_telegram/formatter.py
index 824dc96e..21236b4f 100644
--- a/mautrix_telegram/formatter.py
+++ b/mautrix_telegram/formatter.py
@@ -353,10 +353,11 @@ def _telegram_to_matrix(text, entities):
skip_entity = True
elif entity_type == MessageEntityEmail:
html.append(f"{entity_text}")
- elif entity_type == MessageEntityUrl:
- html.append(f"{entity_text}")
- elif entity_type == MessageEntityTextUrl:
- html.append(f"{entity_text}")
+ elif entity_type in {MessageEntityTextUrl, MessageEntityUrl}:
+ url = escape(entity.url) if entity_type == MessageEntityTextUrl else entity_text
+ if not url.startswith(("https://", "http://", "ftp://", "magnet://")):
+ url = "http://" + url
+ html.append(f"{entity_text}")
elif entity_type == MessageEntityBotCommand:
html.append(f"!{entity_text[1:]}")
elif entity_type == MessageEntityHashtag: