      Py_XDECREF(m->m_self);
      Py_XDECREF(m->m_module);
      if (numfree < PyCFunction_MAXFREELIST) {
-+        _PyFreeList_Alloc(m);
++        _PyFreeList_Free(m);
          m->m_self = (PyObject *)free_list;
          free_list = m;
          numfree++;

 float_dealloc(PyFloatObject *op)
 {
     if (PyFloat_CheckExact(op)) {
+        _PyFreeList_Alloc(op);
         Py_TYPE(op) = (struct _typeobject *)free_list;
         free_list = op;
     }

     }
-    if (numfree < PyList_MAXFREELIST && PyList_CheckExact(op))
+    if (numfree < PyList_MAXFREELIST && PyList_CheckExact(op)) {
+        _PyFreeList_Free(op);
         free_list[numfree++] = op;
+    }
     else
