These seven patches replace [PATCH 6/10], or in the second send, patches 6a. 6b, 6c and 6d. There are more patches because Andi hassled me about extern decls, so I had to expose some things. Tiny patches, but worth separating because you never know when such changes will break something. Compiles and runs here... Thanks, Rusty.