Copyright (C) 2004-2007 Marvin Raaijmakers