diff --git a/ring-android/libringclient/src/main/java/cx/ring/facades/ConversationFacade.java b/ring-android/libringclient/src/main/java/cx/ring/facades/ConversationFacade.java
index 7ff4ac19d00503eba7a2d2f79f35170a7af683ea..4c920930bd9e32bfc4d9da395c2cb92445574f4b 100644
--- a/ring-android/libringclient/src/main/java/cx/ring/facades/ConversationFacade.java
+++ b/ring-android/libringclient/src/main/java/cx/ring/facades/ConversationFacade.java
@@ -375,7 +375,7 @@ public class ConversationFacade {
         } else if (uri.isRingId()) {
             return mContactService.getLoadedContact(account.getAccountID(), account.getContactFromCache(uri))
                     .map(contact -> Collections.singletonList(Observable.just(new SmartListViewModel(account.getAccountID(), contact, null))));
-        } else if (account.canSearch()) {
+        } else if (account.canSearch() && !query.contains("@")) {
             return mAccountService.searchUser(account.getAccountID(), query)
                     .map(AccountService.UserSearchResult::getResultsViewModels);
         } else {
diff --git a/ring-android/libringclient/src/main/java/cx/ring/services/AccountService.java b/ring-android/libringclient/src/main/java/cx/ring/services/AccountService.java
index 679f311bcb7c06990d21a89a51119dfcb9fe5664..a8b3288eecfa8ad45c3d89d355e92aa15238c3d0 100644
--- a/ring-android/libringclient/src/main/java/cx/ring/services/AccountService.java
+++ b/ring-android/libringclient/src/main/java/cx/ring/services/AccountService.java
@@ -1209,7 +1209,7 @@ public class AccountService {
             return Single.error(e);
         }
         return getSearchResults()
-                .filter(r -> account.equals(r.accountId) && query.equals(r.query))
+                .filter(r -> account.equals(r.accountId) && encodedUrl.equals(r.query))
                 .firstOrError()
                 .doOnSubscribe(s -> mExecutor.execute(() -> Ringservice.searchUser(account, encodedUrl)))
                 .subscribeOn(Schedulers.from(mExecutor));