Merge part of the trunk changes into the p3yk branch. This merges from 43030
(branch-creation time) up to 43067. 43068 and 43069 contain a little
swapping action between re.py and sre.py, and this mightily confuses svn
merge, so later changes are going in separately.

This merge should break no additional tests.

The last-merged revision is going in a 'last_merge' property on '.' (the
branch directory.) Arbitrarily chosen, really; if there's a BCP for this, I
couldn't find it, but we can easily change it afterwards ;)
diff --git a/Modules/cStringIO.c b/Modules/cStringIO.c
index fd28aa9..bdc9f00 100644
--- a/Modules/cStringIO.c
+++ b/Modules/cStringIO.c
@@ -144,7 +144,8 @@
 
 static PyObject *
 IO_isatty(IOobject *self, PyObject *unused) {
-	Py_INCREF(Py_False);
+        if (!IO__opencheck(self)) return NULL;
+        Py_INCREF(Py_False);
         return Py_False;
 }