Written by Adrian Rossouw <adrian@daemon.co.za>
Thanks to Ratko Kovacina for the comments/debugging info
Browsing improvements by Doug Sikora
