diff --git a/include/TopRoomBar.h b/include/TopRoomBar.h
index bfc5a08f73ae0af0ceaaf21fcaff506e9f14f845..1544ad46b8aa96dc7069f619bc48710e54469d99 100644
--- a/include/TopRoomBar.h
+++ b/include/TopRoomBar.h
@@ -39,6 +39,7 @@ public:
 	inline void updateRoomAvatar(const QIcon &icon);
 	inline void updateRoomName(const QString &name);
 	inline void updateRoomTopic(const QString &topic);
+	void updateRoomAvatarFromName(const QString &name);
 
 	void reset();
 
diff --git a/src/ChatPage.cc b/src/ChatPage.cc
index e6b05c1db8d492886ae62fef7e21779d61f31ed2..a5e86f1f37407947cfb24a4ebf890d37c7d3c0d1 100644
--- a/src/ChatPage.cc
+++ b/src/ChatPage.cc
@@ -292,6 +292,8 @@ void ChatPage::changeTopRoomInfo(const RoomInfo &info)
 	if (room_avatars_.contains(info.id())) {
 		QIcon icon(room_avatars_.value(info.id()));
 		top_bar_->updateRoomAvatar(icon);
+	} else {
+		top_bar_->updateRoomAvatarFromName(info.name());
 	}
 
 	current_room_ = info;
diff --git a/src/TopRoomBar.cc b/src/TopRoomBar.cc
index 3c05a953d51c2de984e825e93c713ab9570c2a15..adff71b098858ed6473158dfca086e647817d64b 100644
--- a/src/TopRoomBar.cc
+++ b/src/TopRoomBar.cc
@@ -77,6 +77,16 @@ TopRoomBar::TopRoomBar(QWidget *parent)
 	setLayout(top_layout_);
 }
 
+void TopRoomBar::updateRoomAvatarFromName(const QString &name)
+{
+	QChar letter = '?';
+
+	if (name.size() > 0)
+		letter = name[0];
+
+	avatar_->setLetter(letter);
+}
+
 void TopRoomBar::reset()
 {
 	name_label_->setText("");