C# Cookbook by Jay Hilyard, Stephen Teilhet The unconfirmed error reports are from readers. They have not yet been approved or disproved by the author or editor and represent solely the opinion of the reader. Here's a key to the markup: [page-number]: serious technical mistake {page-number}: minor technical mistake : important language/formatting problem (page-number): language change or minor formatting problem ?page-number?: reader question or request for clarification This page was updated February 8, 2008. UNCONFIRMED errors and comments from readers: {49} Second code line from the bottom; int caseSensitiveResult = string.Compare( lowerCase, StringComparison.CurrentCulture ) ; should be: int caseSensitiveResult = string.Compare( lowerCase, upperCase, StringComparison.CurrentCulture ) ; [61] mid-page; The second to last line of the code examples is: Colors actualEnum = (Colors)Colors.Parse( typeof( Colors ), colorString ) ; Should be: Colors actualEnum = (Colors)Enum.Parse( typeof( Colors ), colorString ) ; {801} Code for POST overload; The code as printed throws a ProtocolViolationException on the line ending in 'httpRequest.GetRequestStream())' because the Method property of the httpRequest object is set to GET. This is fixed by adding 'httpRequest.Method = "POST"' anywhere between the initialization of the httpRequest object and the offending line. {838} 2nd paragraph under "Discussion" heading; The code snippet does not match the program on the previous page. The snippet creates an XPathDocument from a MemoryStream object. The complete program creates an XPathDocument from a StringReader object. The text above the code matches the snippet, which means it is also incorrect (assuming the complete program on the previous page is correct.) {879} 7th line; I think you forgot to define _syncRoot. I'm not finshed with testing the code, but I defined it as: private object _syncRoot; and then assigned the value in the "MyTcpServer" constructor, like _syncRoot = this;