Hi, While working on org-recent-headings, I thought I needed a version of org-find-olp that behaved slightly differently, so I wrote a new function. It turned out that I didn't need the new function, but I found that it seems to be much faster than org-find-olp, so it might be worth using in Org. Here is the code and test results. The bench-multi-lexical macro is from: https://github.com/alphapapa/emacs-package-dev-handbook#bench-multi-macros You'll note that it slightly differs in behavior in two ways: 1. When an outline path is not found, it returns nil instead of raising an error. This could easily be changed to match the behavior of org-find-olp, of course. However, it makes the function easier to use to check for the existence of an OLP without raising an error, and AFAICT org-find-olp is only used in a few places, so it might be worth considering to use this new behavior. 2. Checking for duplicate OLPs is optional. Sometimes it may be useful to find an OLP regardless of whether a duplicate exists, and this allows for that. Provided are two versions of the function: the only difference between them is that the *-named version uses: (format org-complex-heading-regexp-format ...) ...while the non-* version uses rx-to-string with an rx form. The rx-to-string version appears to be significantly faster. I'm not sure why. Perhaps format is an expensive call--it's the only difference between the two versions--but my cursory profiling didn't necessarily indicate that was the source of the difference. As far as finding duplicates, it seems to work properly in my testing. But beware, I have only tested the code, not proven it correct.* ;) If this would be useful to have in Org, whether as a replacement for org-find-olp or otherwise, I could submit a patch. Thanks, Adam