           (elfeed-curl--queue-consolidate elfeed-curl-queue)))
   (while (and (< elfeed-curl-queue-active elfeed-curl-max-connections)
               (> (length elfeed-curl-queue) 0))
-    (cl-destructuring-bind (url cb headers) (pop elfeed-curl-queue)
+    (cl-destructuring-bind (url cb headers method data) (pop elfeed-curl-queue)
       (elfeed-log 'debug "retrieve %s" url)
       (cl-incf elfeed-curl-queue-active 1)
       (elfeed-curl-retrieve

  (elfeed-curl--decode)
  (current-buffer))

(defun elfeed-curl-retrieve-synchronously (url &optional headers)
  "Retrieve the contents for URL and return a new buffer with them.
HEADERS is an alist of additional headers to add to the HTTP request."
  (with-current-buffer (generate-new-buffer " *curl*")
    (setf elfeed-curl--token (elfeed-curl--token))
    (let ((args (elfeed-curl--args url elfeed-curl--token headers))
          (coding-system-for-read 'binary))
      (apply #'call-process elfeed-curl-program-name nil t nil args))
    (elfeed-curl--parse-write-out)

                 for (_ . cb) in elfeed-curl--requests
                 do (run-at-time 0 nil handler buffer cb))))))

(defun elfeed-curl-retrieve (url cb &optional headers method data)
  "Retrieve URL contents asynchronously, calling CB with one status argument.

The callback must *not* kill the buffer!
