diff --git a/addons/mail/models/mail_thread_blacklist.py b/addons/mail/models/mail_thread_blacklist.py
index a1eed2714bf90d49c56e5773c54042b5c80bacff..00c3637e6c146b533db31b3f8e9c7ea6f0a6dd56 100644
--- a/addons/mail/models/mail_thread_blacklist.py
+++ b/addons/mail/models/mail_thread_blacklist.py
@@ -76,11 +76,11 @@ class MailBlackListMixin(models.AbstractModel):
                     ON m.email_normalized = bl.email AND bl.active
                     WHERE bl.id IS NULL
             """
-        self._cr.execute(query % self._table)
+        self._cr.execute((query + " FETCH FIRST ROW ONLY") % self._table)
         res = self._cr.fetchall()
         if not res:
             return [(0, '=', 1)]
-        return [('id', 'in', [r[0] for r in res])]
+        return [('id', 'inselect', (query % self._table, []))]
 
     @api.depends('email_normalized')
     def _compute_is_blacklisted(self):