Martin Panter added the comment: Thanks everyone for the comments. Serhiy’s points: I did this by using “grep” and then manually editing all of the appropriate lines. So they were not generated by a script, but because it is a fairly mindless process I could have made human mistakes. In multiprocessing.rst, socket.rst, I removed “a” because I thought it matched the surrounding text, e.g. it already says nearby “If . . . then OSError is raised”, rather than “an OSError is raised”. I find the documentation uses both forms in many places, so I just try to keep things consistent with the nearby text. In 3.2.rst, I thought it should be plural: “total_ordering() will use existing equality and inequality methods”. I could reword it to something like “will use an existing equality and inequality method” if you prefer. Either way seems valid to me. In HISTORY, I removed “a” from “. . . is passed ill-formed input” because it seemed better (similar to “is passed hot water”). But “an ill-formed input” should also be fine if people prefer. _hashopenssl.c: “have a its own definition” is nonsense, hence I removed “a”. “An SMTP”: See Emanuel and David. The rest of the page uses “an SMTP”, while I only found two instances of “a SMTP”, which I made consistent. Externally-supplied decimaltestdata: I did wonder about this. Looking at the history, I saw other local changes, but now I notice most are in a special “extra.decTest” file. Anyway, as Mark says it is okay I will let my changes go ahead for the time being. David: I have incorporated your suggestion for test_discovery.py into my local patch. ---------- _______________________________________ Python tracker <report@bugs.python.org> <http://bugs.python.org/issue25523> _______________________________________