Russell, I share your frustration; Common Lisp has a lot of idiosyncrasies and also a lot of really interesting, useful ideas, so it's both a wonderful and terrible environment for writing code, and, given its history, that will continue to be the case indefinitely. My advice is just take the idiosyncrasies in stride, and work with the hand you (well, all of us) have been dealt. I know this isn't a satisfying conclusion. Specifically about the :uses bit in the package definition, from combing the CLHS I see that an explicit :uses declaration supersedes the default, so, assuming that UIOP:DEFINE-PACKAGE doesn't change the interpretation of :uses (although that wouldn't be entirely out of the question), that seems to explain the observed behavior. (I also saw in CLHS that the :uses default is explicitly implementation-dependent, so, while :uses :common-lisp is nice, one cannot actually rely on it ... Oh well!) FWIW Robert Dodier