diff --git a/Lib/test/test_getargs2.py b/Lib/test/test_getargs2.py
index d7866ca..12e9756 100644
--- a/Lib/test/test_getargs2.py
+++ b/Lib/test/test_getargs2.py
@@ -48,7 +48,8 @@
 VERY_LARGE = 0xFF0000121212121212121242L
 
 from _testcapi import UCHAR_MAX, USHRT_MAX, UINT_MAX, ULONG_MAX, INT_MAX, \
-     INT_MIN, LONG_MIN, LONG_MAX, PY_SSIZE_T_MIN, PY_SSIZE_T_MAX
+     INT_MIN, LONG_MIN, LONG_MAX, PY_SSIZE_T_MIN, PY_SSIZE_T_MAX, \
+     SHRT_MIN, SHRT_MAX
 
 # fake, they are not defined in Python's header files
 LLONG_MAX = 2**63-1
@@ -150,6 +151,22 @@
         self.assertEqual(VERY_LARGE & ULONG_MAX, getargs_k(VERY_LARGE))
 
 class Signed_TestCase(unittest.TestCase):
+    def test_h(self):
+        from _testcapi import getargs_h
+        # h returns 'short', and does range checking (SHRT_MIN ... SHRT_MAX)
+        self.assertEqual(3, getargs_h(3.14))
+        self.assertEqual(99, getargs_h(Long()))
+        self.assertEqual(99, getargs_h(Int()))
+
+        self.assertRaises(OverflowError, getargs_h, SHRT_MIN-1)
+        self.assertEqual(SHRT_MIN, getargs_h(SHRT_MIN))
+        self.assertEqual(SHRT_MAX, getargs_h(SHRT_MAX))
+        self.assertRaises(OverflowError, getargs_h, SHRT_MAX+1)
+
+        self.assertEqual(42, getargs_h(42))
+        self.assertEqual(42, getargs_h(42L))
+        self.assertRaises(OverflowError, getargs_h, VERY_LARGE)
+
     def test_i(self):
         from _testcapi import getargs_i
         # i returns 'int', and does range checking (INT_MIN ... INT_MAX)
diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c
index c5c2c6b..b68e76d 100644
--- a/Modules/_testcapimodule.c
+++ b/Modules/_testcapimodule.c
@@ -454,6 +454,15 @@
 }
 
 static PyObject *
+getargs_h(PyObject *self, PyObject *args)
+{
+	short value;
+	if (!PyArg_ParseTuple(args, "h", &value))
+		return NULL;
+	return PyLong_FromLong((long)value);
+}
+
+static PyObject *
 getargs_H(PyObject *self, PyObject *args)
 {
 	unsigned short value;
@@ -1045,6 +1054,7 @@
 	  METH_VARARGS|METH_KEYWORDS},
 	{"getargs_b",		getargs_b,			 METH_VARARGS},
 	{"getargs_B",		getargs_B,			 METH_VARARGS},
+	{"getargs_h",		getargs_h,			 METH_VARARGS},
 	{"getargs_H",		getargs_H,			 METH_VARARGS},
 	{"getargs_I",		getargs_I,			 METH_VARARGS},
 	{"getargs_k",		getargs_k,			 METH_VARARGS},
