I originally coded this myself, and now I realize {Net,Open}BSD had already
coded this. I have tossed my version to reduce diffs between the projects.
Obtained from: OpenBSD 2.5
This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.
Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.