diff --git a/app/src/main/java/com/futo/circles/feature/people/user/UserFragment.kt b/app/src/main/java/com/futo/circles/feature/people/user/UserFragment.kt
index 251e4f36544ae44238baca1fdef92370d1457246..0b3a8b2fc49215e8169dc8c3974542b0c1c7bbe5 100644
--- a/app/src/main/java/com/futo/circles/feature/people/user/UserFragment.kt
+++ b/app/src/main/java/com/futo/circles/feature/people/user/UserFragment.kt
@@ -13,6 +13,7 @@ import com.futo.circles.extensions.loadProfileIcon
 import com.futo.circles.extensions.observeData
 import com.futo.circles.extensions.setIsVisible
 import com.futo.circles.feature.people.user.list.UsersCirclesAdapter
+import com.futo.circles.mapping.notEmptyDisplayName
 import org.koin.androidx.viewmodel.ext.android.viewModel
 import org.koin.core.parameter.parametersOf
 import org.matrix.android.sdk.api.session.user.model.User
@@ -56,13 +57,13 @@ class UserFragment : Fragment(R.layout.user_fragment) {
 
     private fun setupUserInfo(user: User) {
         with(binding) {
-            (activity as? AppCompatActivity)?.supportActionBar?.title = user.displayName
+            (activity as? AppCompatActivity)?.supportActionBar?.title = user.notEmptyDisplayName()
             tvUserId.text = user.userId
-            tvUserName.text = user.displayName
-            ivUser.loadProfileIcon(user.avatarUrl, user.displayName ?: "")
-            tvCirclesListTitle.text = getString(R.string.users_circles_format, user.displayName)
+            tvUserName.text = user.notEmptyDisplayName()
+            ivUser.loadProfileIcon(user.avatarUrl, user.notEmptyDisplayName())
+            tvCirclesListTitle.text = getString(R.string.users_circles_format, user.notEmptyDisplayName())
             tvEmptyCirclesList.text =
-                getString(R.string.not_following_any_circles_format, user.displayName)
+                getString(R.string.not_following_any_circles_format, user.notEmptyDisplayName())
         }
     }
 
diff --git a/app/src/main/java/com/futo/circles/feature/settings/edit_profile/EditProfileDialogFragment.kt b/app/src/main/java/com/futo/circles/feature/settings/edit_profile/EditProfileDialogFragment.kt
index 1b760054060158da6586c99e4ea9719c0e041465..5a2ef3dee9f710a4bed7d851f761812fe79e2ed7 100644
--- a/app/src/main/java/com/futo/circles/feature/settings/edit_profile/EditProfileDialogFragment.kt
+++ b/app/src/main/java/com/futo/circles/feature/settings/edit_profile/EditProfileDialogFragment.kt
@@ -10,6 +10,7 @@ import com.futo.circles.core.fragment.BaseFullscreenDialogFragment
 import com.futo.circles.core.fragment.HasLoadingState
 import com.futo.circles.databinding.EditProfileDialogFragmentBinding
 import com.futo.circles.extensions.*
+import com.futo.circles.mapping.notEmptyDisplayName
 import org.koin.androidx.viewmodel.ext.android.viewModel
 import org.matrix.android.sdk.api.session.user.model.User
 
@@ -76,7 +77,7 @@ class EditProfileDialogFragment :
 
     private fun setInitialUserInfo(user: User) {
         with(binding) {
-            ivProfile.loadProfileIcon(user.avatarUrl, user.displayName ?: "")
+            ivProfile.loadProfileIcon(user.avatarUrl, user.notEmptyDisplayName())
             tilName.editText?.setText(user.displayName)
             tilUserId.editText?.setText(user.userId)
         }
diff --git a/app/src/main/java/com/futo/circles/feature/sign_up/setup_circles/SetupCirclesDataSource.kt b/app/src/main/java/com/futo/circles/feature/sign_up/setup_circles/SetupCirclesDataSource.kt
index bee40830ad0ed0f89b1455e60ddd387f89f5821b..c0b0502d348d10d5e9c89a1123623054b3d89add 100644
--- a/app/src/main/java/com/futo/circles/feature/sign_up/setup_circles/SetupCirclesDataSource.kt
+++ b/app/src/main/java/com/futo/circles/feature/sign_up/setup_circles/SetupCirclesDataSource.kt
@@ -4,6 +4,7 @@ import android.content.Context
 import android.net.Uri
 import androidx.lifecycle.MutableLiveData
 import com.futo.circles.R
+import com.futo.circles.mapping.notEmptyDisplayName
 import com.futo.circles.model.SetupCircleListItem
 import com.futo.circles.provider.MatrixSessionProvider
 import org.matrix.android.sdk.api.session.getUser
@@ -26,7 +27,7 @@ class SetupCirclesDataSource(
     private fun getUserName(): String {
         val session = MatrixSessionProvider.currentSession
         val userId = session?.myUserId ?: return ""
-        return session.getUser(userId)?.displayName ?: ""
+        return session.getUser(userId)?.notEmptyDisplayName()?:""
     }
 
     fun addCirclesCoverImage(id: Int, uri: Uri) {
diff --git a/app/src/main/java/com/futo/circles/mapping/MatrixUserMapping.kt b/app/src/main/java/com/futo/circles/mapping/MatrixUserMapping.kt
index 0bf37fd2d88a242cdc40fee85825c85a99a8c1dc..43ad674466cbb4bfbb1ef0ef57af655ac58dad53 100644
--- a/app/src/main/java/com/futo/circles/mapping/MatrixUserMapping.kt
+++ b/app/src/main/java/com/futo/circles/mapping/MatrixUserMapping.kt
@@ -8,7 +8,7 @@ import org.matrix.android.sdk.api.session.user.model.User
 fun User.toUserListItem(isSelected: Boolean) = UserListItem(
     user = CirclesUserSummary(
         id = userId,
-        name = displayName ?: userId,
+        name = notEmptyDisplayName(),
         avatarUrl = avatarUrl ?: ""
     ),
     isSelected = isSelected
@@ -17,8 +17,12 @@ fun User.toUserListItem(isSelected: Boolean) = UserListItem(
 fun User.toPeopleUserListItem(isIgnored: Boolean) = PeopleUserListItem(
     user = CirclesUserSummary(
         id = userId,
-        name = displayName ?: userId,
+        name = notEmptyDisplayName(),
         avatarUrl = avatarUrl ?: ""
     ),
     isIgnored = isIgnored
-)
\ No newline at end of file
+)
+
+fun User.notEmptyDisplayName() =
+    displayName?.takeIf { it.isNotEmpty() }
+        ?: userId.replace("@", "").substringBefore(":")
\ No newline at end of file
diff --git a/app/src/main/java/com/futo/circles/view/ProfileView.kt b/app/src/main/java/com/futo/circles/view/ProfileView.kt
index c8b3a666e9d587a6420e904d9411b9c24c376727..6f0f7a793990c51a67d99130de06688ae1740e1c 100644
--- a/app/src/main/java/com/futo/circles/view/ProfileView.kt
+++ b/app/src/main/java/com/futo/circles/view/ProfileView.kt
@@ -6,6 +6,7 @@ import android.view.LayoutInflater
 import androidx.constraintlayout.widget.ConstraintLayout
 import com.futo.circles.databinding.ProfileViewBinding
 import com.futo.circles.extensions.loadProfileIcon
+import com.futo.circles.mapping.notEmptyDisplayName
 import org.matrix.android.sdk.api.session.user.model.User
 
 class ProfileView(
@@ -19,7 +20,7 @@ class ProfileView(
 
     fun setData(user: User) {
         with(binding) {
-            ivProfile.loadProfileIcon(user.avatarUrl, user.displayName ?: "")
+            ivProfile.loadProfileIcon(user.avatarUrl, user.notEmptyDisplayName())
             tvUserName.text = user.displayName
             tvUserId.text = user.userId
         }