Thanks to Simon Cozens (original Version) Brett Paden (paden@multiply.com) Balazs Rauznitz (balazs@multiply.com) (Memory patch)