The second patch builds on the first one, and is somewhat "heavier". It removes all ecomplete, and mailabbrev stuff, and all completion UI code. I have also removed message-expand-name, and message--name-table, and instead am calling out to EUDC. EUDC is enhanced by two new backends for ecomplete, and mailabbrev. Thus, in terms of functionality, end users should see no difference. To use the new EUDC back-ends you'll need to do one or both of: (require 'eudcb-ecomplete) (add-to-list 'eudc-server-hotlist '("localhost" . ecomplete)) (require 'eudcb-mailabbrev) (add-to-list 'eudc-server-hotlist '("localhost" . mailabbrev)) I have also added a new hook for email address snarfing, so that there is now generic mechanisms for this, too. Perhaps a new function for in ecomplete would be helpful, which can readily be added to the new snarfing hook. I'll have a look to that soon.