diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java
index cee24558fe4cc7f17b40e48b13ccf31e3c71f3c0..8dfcff0d8de59da7266fcfe9ca28a24362be2572 100644
--- a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java
+++ b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java
@@ -3471,11 +3471,14 @@ public class ConversationFragment extends XmppFragment
 
     private boolean showBlockSubmenu(View view) {
         final Jid jid = conversation.getJid();
-        final boolean showReject = conversation.getContact().getOption(Contact.Options.PENDING_SUBSCRIPTION_REQUEST);
+        final int mode = conversation.getMode();
+        final var contact = mode == Conversation.MODE_SINGLE ? conversation.getContact() : null;
+        final boolean showReject = contact.getOption(Contact.Options.PENDING_SUBSCRIPTION_REQUEST);
         PopupMenu popupMenu = new PopupMenu(getActivity(), view);
         popupMenu.inflate(R.menu.block);
         popupMenu.getMenu().findItem(R.id.block_contact).setVisible(jid.getLocal() != null);
         popupMenu.getMenu().findItem(R.id.reject).setVisible(showReject);
+        popupMenu.getMenu().findItem(R.id.add_contact).setVisible(!contact.showInRoster());
         popupMenu.setOnMenuItemClickListener(
                 menuItem -> {
                     Blockable blockable;
@@ -3485,6 +3488,9 @@ public class ConversationFragment extends XmppFragment
                                     conversation.getContact());
                             updateSnackBar(conversation);
                             return true;
+                        case R.id.add_contact:
+                            mAddBackClickListener.onClick(view);
+                            return true;
                         case R.id.block_domain:
                             blockable =
                                     conversation
@@ -3524,8 +3530,8 @@ public class ConversationFragment extends XmppFragment
                 && contact.getOption(Contact.Options.PENDING_SUBSCRIPTION_REQUEST)) {
             showSnackbar(
                     R.string.contact_added_you,
-                    R.string.add_back,
-                    this.mAddBackClickListener,
+                    R.string.options,
+                    this.mBlockClickListener,
                     this.mLongPressBlockListener);
         } else if (contact != null
                 && contact.getOption(Contact.Options.PENDING_SUBSCRIPTION_REQUEST)) {
@@ -3609,7 +3615,10 @@ public class ConversationFragment extends XmppFragment
                 && !conversation.isBlocked()
                 && conversation.isWithStranger()) {
             showSnackbar(
-                    R.string.received_message_from_stranger, R.string.block, mBlockClickListener);
+                    R.string.received_message_from_stranger,
+                    R.string.options,
+                    this.mBlockClickListener,
+                    this.mLongPressBlockListener);
         } else {
             hideSnackbar();
         }
diff --git a/src/main/res/menu/block.xml b/src/main/res/menu/block.xml
index 04adad9d91df2d6b849b657784543b86f7baa0a5..8dac13c22b3b47de044796c5b67c2c57ca9673f2 100644
--- a/src/main/res/menu/block.xml
+++ b/src/main/res/menu/block.xml
@@ -9,4 +9,7 @@
      
-
\ No newline at end of file
+     
+
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index b79402e33ea7cb969b1d6bda07947872785c0437..5a801f4584d8f1475c61c4022c4cbcb4b3aae191 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -1072,4 +1072,5 @@
     Allow this app to show incoming call notifications that take up the full screen when the device is locked.
     Unsupported operation
     Send later
+    Options