... I got the whole thing from Johnnie Godwin on another thread.