Copyright (c) 2001 Oleg Kiselyov Copyright (c) 2003 Martin Gasbichler