Forked from http://netoffice.codeplex.com