fork form http://svn.m0n0.ch/wall/branches/freebsd8/ (r546)