Copied over from https://kennethxublogsource.googlecode.com/svn/trunk/gm4java 1.0.0 release