diff --git a/Misc/NEWS b/Misc/NEWS
index 8b91de8..dd2346b 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -58,6 +58,9 @@
 Extension Modules
 -----------------
 
+- Issue #6544: fix a reference leak in the kqueue implementation's error
+  handling.
+
 - Stop providing crtassem.h symbols when compiling with Visual Studio 2010, as
   msvcr100.dll is not a platform assembly anymore.
 
diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c
index f243a1d..aae08d5 100644
--- a/Modules/selectmodule.c
+++ b/Modules/selectmodule.c
@@ -1236,6 +1236,7 @@
 #undef KQ_OFF
 
 static PyObject *
+
 kqueue_event_repr(kqueue_event_Object *s)
 {
 	char buf[1024];
@@ -1521,19 +1522,6 @@
 		return NULL;
 	}
 
-	if (ch != NULL && ch != Py_None) {
-		it = PyObject_GetIter(ch);
-		if (it == NULL) {
-			PyErr_SetString(PyExc_TypeError,
-					"changelist is not iterable");
-			return NULL;
-		}
-		nchanges = PyObject_Size(ch);
-		if (nchanges < 0) {
-			return NULL;
-		}
-	}
-
 	if (otimeout == Py_None || otimeout == NULL) {
 		ptimeoutspec = NULL;
 	}
@@ -1569,11 +1557,22 @@
 		return NULL;
 	}
 
-	if (nchanges) {
+	if (ch != NULL && ch != Py_None) {
+		it = PyObject_GetIter(ch);
+		if (it == NULL) {
+			PyErr_SetString(PyExc_TypeError,
+					"changelist is not iterable");
+			return NULL;
+		}
+		nchanges = PyObject_Size(ch);
+		if (nchanges < 0) {
+			goto error;
+		}
+
 		chl = PyMem_New(struct kevent, nchanges);
 		if (chl == NULL) {
 			PyErr_NoMemory();
-			return NULL;
+			goto error;
 		}
 		i = 0;
 		while ((ei = PyIter_Next(it)) != NULL) {
@@ -1596,7 +1595,7 @@
 		evl = PyMem_New(struct kevent, nevents);
 		if (evl == NULL) {
 			PyErr_NoMemory();
-			return NULL;
+			goto error;
 		}
 	}
 
