Copyright (C) 2006-2008, 2010 Peter Miller
