Programming Python, 2nd Edition by Mark Lutz The following changes were made in the 6/01 reprint. 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 (207) 2nd bullet item: sting.find now reads string.find. {364} last sentence just before Example 8-3: This now reads: Example 8-3 creates the same menu as Example 8-1,... (468) second-to-last sentence in second paragraph: Changed "exiting" to "existing"; now reads: By adding undo as an external subclass, existing PyEdit code... (468) first sentence under header "PyEdit Source Code": Changed the first part of this sentence (up to the dashes) to the following (else the rest of the sentence doesn't make sense): The program in Example 9-14 and Example 9-15 consists of just two source files--... {612} Example 11-17, 7th line from top of page: text =('From:%s \nTo:%s \nDate:%s \nSubject:%s\n now reads: text =('From:%s \nTo:%s \nDate:%s \nSubject:%s\n\n' (612) second indented paragraph at very end of page: This new sentence was added to the end of the paragraph: To be robust, add a blank line between the header lines and the body in the message's text. {663} Example 11-23, 19th line from bottom: hdrs =hdrs +'X-Mailer:PyMailGui Version 1.0 (Python)\n' now reads: hdrs =hdrs +'X-Mailer:PyMailGui Version 1.0 (Python)\n\n' {773} Example 13-4, very last line on page: hdrs =hdrs +'X-Mailer:PyMailCgi Version 1.0 (Python)\n' now reads: hdrs =hdrs +'X-Mailer:PyMailCgi Version 1.0 (Python)\n\n' {1040} first line in last interaction listing on the page now reads as follows (that is, changed the upside-down apostrope to a backslash): holmes> @= ..\bases\zoo.kb