customized  from svn checkout http://protobuf-net.googlecode.com/svn/trunk/