diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
index 1880b11..e923d82 100644
--- a/Lib/test/test_socket.py
+++ b/Lib/test/test_socket.py
@@ -90,6 +90,20 @@
     except socket.error:
         pass
 
+try:
+    # On some versions, this loses a reference
+    import sys
+    orig = sys.getrefcount(__name__)
+    socket.getnameinfo(__name__,0)
+except SystemError:
+    if sys.getrefcount(__name__) <> orig:
+        raise TestFailed,"socket.getnameinfo loses a reference"
+
+try:
+    # On some versions, this crashes the interpreter.
+    socket.getnameinfo(('x', 0, 0, 0), 0)
+except socket.gaierror:
+    pass
 
 canfork = hasattr(os, 'fork')
 try:
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
index e5d850c..1ecb281 100644
--- a/Modules/socketmodule.c
+++ b/Modules/socketmodule.c
@@ -2537,18 +2537,17 @@
 	PyObject *sa = (PyObject *)NULL;
 	int flags;
 	char *hostp;
-	int n, port, flowinfo, scope_id;
+	int port, flowinfo, scope_id;
 	char hbuf[NI_MAXHOST], pbuf[NI_MAXSERV];
 	struct addrinfo hints, *res = NULL;
 	int error;
 	PyObject *ret = (PyObject *)NULL;
 
 	flags = flowinfo = scope_id = 0;
-	if (PyArg_ParseTuple(args, "Oi:getnameinfo", &sa, &flags) == 0)
+	if (!PyArg_ParseTuple(args, "Oi:getnameinfo", &sa, &flags))
 		return NULL;
-	n = PyArg_ParseTuple(sa, "si|ii", &hostp, &port, &flowinfo, scope_id);
-	if (n == 0)
-		goto fail;
+	if  (!PyArg_ParseTuple(sa, "si|ii", &hostp, &port, &flowinfo, &scope_id))
+		return NULL;
 	PyOS_snprintf(pbuf, sizeof(pbuf), "%d", port);
 	memset(&hints, 0, sizeof(hints));
 	hints.ai_family = PF_UNSPEC;
@@ -2597,7 +2596,6 @@
 fail:
 	if (res)
 		freeaddrinfo(res);
-	Py_XDECREF(sa);
 	return ret;
 }
 
