diff --git a/src/calibre/devices/mtp/windows/wpd.cpp b/src/calibre/devices/mtp/windows/wpd.cpp index 15cdd51e22..867ce6bcee 100644 --- a/src/calibre/devices/mtp/windows/wpd.cpp +++ b/src/calibre/devices/mtp/windows/wpd.cpp @@ -120,14 +120,14 @@ wpd_enumerate_devices(PyObject *self, PyObject *args) { hresult_set_exc("Failed to get list of portable devices", hr); } + Py_BEGIN_ALLOW_THREADS; for (i = 0; i < num_of_devices; i++) { - Py_BEGIN_ALLOW_THREADS; CoTaskMemFree(pnp_device_ids[i]); - Py_END_ALLOW_THREADS; pnp_device_ids[i] = NULL; } free(pnp_device_ids); pnp_device_ids = NULL; + Py_END_ALLOW_THREADS; return Py_BuildValue("N", ans); } // }}}