This was already discussed here : http://www.archlinux.org/pipermail/pacman-dev/2008-January/010940.html And then more recently in bbs : http://bbs.archlinux.org/viewtopic.php?id=43809 The guy there started to write a little script on his own, and that made me realize that the behavior he wanted is actually pretty close to the current -Sc code. Only a small part needs to be changed, most of the code can be re-used. But instead of only keeping the packages which are in the local database, we would keep the packages which are in a sync database. http://bbs.archlinux.org/viewtopic.php?pid=330487#p330487 So I hacked a patch together. It's not really usable yet, because it's not configurable , only the second behavior will be used. It's only a proof of concept for now. (and anyway, it only prints the package that it wants to remove, it doesn't actually remove them, for testing purpose) I just wanted to know what others think about proposing two different behaviors for -Sc, and how the user could choose between both (maybe an additional flag, but which?).