Sync'd from http://countingto.codeplex.com.