When setting org-tag-alist or org-tag-persistent-alist, calling org-set-tags or org-agenda-set-tags will populate select with both alist tags and any tags from tagged subheadings.
To reproduce: $ cat tmp.org * TODO task :tag1: $ emacs -Q (setq org-tag-persistent-alist '(("tag1" . ?1) ("tag2" . ?2))) M-x eval-last sexp M-x find-file RET tmp.org M-x org-set-tags Inherited: Current: tag1 [1] tag1 [2] tag2 [t] tag1 "tag1" is duplicated. This also occurs if tmp.org is added to agenda and org-agenda-set-tags is called, however this bug *compounds* with each additional agenda file containing tagged subheadings, e.g. if org-agenda-files contains five org files, each with subheadings tagged :work: then org-agenda-set-tags will populate with six :work: selections (org-tag-persistent-alist plus each additional file). This bug appears to have been first reported back in 2012 but not investigated: https://lists.gnu.org/archive/html/emacs-orgmode/2012-12/msg00470.html GNU Emacs 24.5.1 (x86_64-apple-darwin14.3.0, NS apple-appkit-1347.57) of 2015-04-21 on Pauls-MacBook-Pro.local Org-mode version 8.2.10 (8.2.10-40-gc763fa-elpa @ /Users/Paul/.emacs.d/elpa/org-20150504/)