fork from http://duilib.googlecode.com/svn/trunk