Hello, when switching to a new in-buffer completion user interface package which is solely based on completion-at-point, I observed that email address completion in message-mode happens in the minibuffer, regardless of what UI on top of completion-at-point I use. Also, EUDC's ability to aggregate search results from several servers, which was recently added with commit 0470a4a939772c4bd25123b15f5eadab41f8bee5, was not kicking in, i.e. I was presented results from a single EUDC server only. Browsing through message.el quickly brought me to the sixth of the 21 FIXMEs in that file, which reads on line 3183: ;; FIXME: merge the completion tables from ecomplete/bbdb/...? ;;(add-hook 'completion-at-point-functions #'message-ecomplete-capf nil t) (add-hook 'completion-at-point-functions #'message-completion-function nil t) Thus, the most straightforward solution to my problem seemed to make a new EUDC function that can be added to completion-at-point-functions, and to update message-mode to actually add that function to completion-at-point-functions. This is what the below attached patch does. As a result, both of my issues are fixed: the new completion-at-point user interface presents the email addresses, and I get results from all configured EUDC servers. For EUDC, the added value is that it gains a function for completion-at-point-functions, which it didn't have before. The new function also makes use of EUDC's new "try all servers" feature, merging the search results from several sources. For message-mode, the added value is that the FIXME regarding the merging of email address completion tables is addressed, as this is now done by EUDC. Further sources for email addresses can be added to EUDC by writing EUDC back-ends for them, which is not difficult in my experience. Any new email address sources will thus become available in message-mode without any further changes in message-mode itself (neither code nor config). Hoping to have helped, and looking forward to your thoughts, --alexander