Thanks to Mark Emerson for finding a couple bugs in the Chapter 9 code. I think these were caused by changes to VB .NET shortly before the final release. I updated the posted code 13 April 2002.