--- a/src/pycurl.c +++ a/src/pycurl.c @@ -1452,6 +1452,7 @@ do_curl_reset(CurlObject *self) } } + Py_INCREF(Py_None); return Py_None; } --- a/tests/test_internals.py +++ a/tests/test_internals.py @@ -245,6 +245,11 @@ if 1 and gc: if opts.verbose >= 1: print "Tracked objects:", len(gc.get_objects()) +if 1: + # Ensure that the refcounting error in "reset" is fixed: + for i in xrange(100000): + c = Curl() + c.reset() # /*********************************************************************** # // done