It looks like (compile-internal) has been deleted, finally. This patch (see attached) adds a check to use the new (compilation-start) while still being compatible with really old versions. Is it really necessary to keep the legacy call in there?... how far back should we support old versions? My computer ships with v22, but my OS is from 2013, and the new procedure was already marked as the one to use by that point. Unrelated... ... I'm not very familiar with Emacs' dynamic loader. Does it optimize out the branch instruction on load since it's a comparison of a constant? or does compiled code get interpreted literally? It's only a quick branch and calling the external procedure takes much longer, but I used the version check instead of (fboundp) since it's probably faster than the obarray lookup if the check is performed every time you call the procedure. Old assembly habits die hard. Anyways, on to the patch file.