diff -r 1f31bf3f76f5 Lib/_pyio.py --- a/Lib/_pyio.py Fri Dec 02 08:42:43 2016 +0200 +++ b/Lib/_pyio.py Wed Dec 07 12:50:03 2016 +0200 @@ -276,7 +276,7 @@ class OpenWrapper: try: UnsupportedOperation = io.UnsupportedOperation except AttributeError: - class UnsupportedOperation(ValueError, OSError): + class UnsupportedOperation(OSError, ValueError): pass diff -r 1f31bf3f76f5 Modules/_io/_iomodule.c --- a/Modules/_io/_iomodule.c Fri Dec 02 08:42:43 2016 +0200 +++ b/Modules/_io/_iomodule.c Wed Dec 07 12:50:03 2016 +0200 @@ -654,7 +654,7 @@ PyInit__io(void) /* UnsupportedOperation inherits from ValueError and IOError */ state->unsupported_operation = PyObject_CallFunction( (PyObject *)&PyType_Type, "s(OO){}", - "UnsupportedOperation", PyExc_ValueError, PyExc_IOError); + "UnsupportedOperation", PyExc_OSError, PyExc_ValueError); if (state->unsupported_operation == NULL) goto fail; Py_INCREF(state->unsupported_operation);