Issue #17919: select.poll.poll() again works with poll.POLLNVAL on AIX.
diff --git a/Lib/test/test_poll.py b/Lib/test/test_poll.py
index 219fa0e..7e94e3d 100644
--- a/Lib/test/test_poll.py
+++ b/Lib/test/test_poll.py
@@ -161,10 +161,6 @@
 
         pollster = select.poll()
         # Issue 15989
-        self.assertRaises(OverflowError, pollster.register, 0,
-                          _testcapi.SHRT_MAX + 1)
-        self.assertRaises(OverflowError, pollster.register, 0,
-                          _testcapi.USHRT_MAX + 1)
         self.assertRaises(OverflowError, pollster.poll, _testcapi.INT_MAX + 1)
         self.assertRaises(OverflowError, pollster.poll, _testcapi.UINT_MAX + 1)
 
diff --git a/Misc/NEWS b/Misc/NEWS
index 008e612..6e54379 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -23,6 +23,8 @@
 Library
 -------
 
+- Issue #17919: select.poll.poll() again works with poll.POLLNVAL on AIX.
+
 - Issue #17200: telnetlib's read_until and expect timeout was broken by the
   fix to Issue #14635 in Python 2.7.4 to be interpreted as milliseconds
   instead of seconds when the platform supports select.poll (ie: everywhere).
diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c
index 6a36521..dcd6b9c 100644
--- a/Modules/selectmodule.c
+++ b/Modules/selectmodule.c
@@ -366,11 +366,10 @@
 poll_register(pollObject *self, PyObject *args)
 {
     PyObject *o, *key, *value;
-    int fd;
-    short events = POLLIN | POLLPRI | POLLOUT;
+    int fd, events = POLLIN | POLLPRI | POLLOUT;
     int err;
 
-    if (!PyArg_ParseTuple(args, "O|h:register", &o, &events)) {
+    if (!PyArg_ParseTuple(args, "O|i:register", &o, &events)) {
         return NULL;
     }