diff --git a/src/main/kotlin/org/briarproject/briar/desktop/contact/ContactsViewModel.kt b/src/main/kotlin/org/briarproject/briar/desktop/contact/ContactsViewModel.kt
index 848ab77a18f5549f5d0da2c80c3325ac0770febf..344c1a5b3b27546d038265550d2476ea8a20aa67 100644
--- a/src/main/kotlin/org/briarproject/briar/desktop/contact/ContactsViewModel.kt
+++ b/src/main/kotlin/org/briarproject/briar/desktop/contact/ContactsViewModel.kt
@@ -43,6 +43,10 @@ abstract class ContactsViewModel(
 
     private val _fullContactList = mutableStateListOf<BaseContactItem>()
 
+    val noContactsYet = derivedStateOf {
+        _fullContactList.isEmpty()
+    }
+
     val contactList = derivedStateOf {
         _fullContactList.filter(::filterContactItem).sortedByDescending { it.timestamp }
     }
diff --git a/src/main/kotlin/org/briarproject/briar/desktop/conversation/PrivateMessageScreen.kt b/src/main/kotlin/org/briarproject/briar/desktop/conversation/PrivateMessageScreen.kt
index 67554765f374c967d6220138f379ebace953914a..321e7a6a9391b4797b0b1158b4e4aca202398587 100644
--- a/src/main/kotlin/org/briarproject/briar/desktop/conversation/PrivateMessageScreen.kt
+++ b/src/main/kotlin/org/briarproject/briar/desktop/conversation/PrivateMessageScreen.kt
@@ -46,7 +46,7 @@ fun PrivateMessageScreen(
     var isContactDialogVisible by remember { mutableStateOf(false) }
     if (isContactDialogVisible) AddContactDialog(onClose = { isContactDialogVisible = false })
 
-    if (viewModel.contactList.value.isEmpty()) {
+    if (viewModel.noContactsYet.value) {
         NoContactsYet(onContactAdd = { isContactDialogVisible = true })
         return
     }