If the CURLOPT_CUSTOMREQUEST value isn’t cleared after curl_easy_perform_delete() then the next non-DELETE request will fail in mysterious ways. At least, it does with libcurl 7.16.3 on Mac OS X 10.5. I haven’t tested on other platforms or other version of libcurl. It seemed safest at the time to simply reset the handle which would prevent future issues of the same type (i.e., irrelevant handle data being passed across sessions). I had not considered the use case of last_effective_url (the test did not break for me). Anyway, I have implemented a more localized solution to this problem just to be on the safe side.