Back out r35084 since it contains code fragments from MSDN, which are covered