Copyright (c) 1988-1996 Sam Leffler
Copyright (c) 1991-1