/*

Rlyeh donated/contributed code
(c) Rlyeh 2005

*/