               (process-get process :is-http) is-http)))))
 
 (defun elfeed-curl--run-queue ()
-  (when (and (< elfeed-curl-queue-active elfeed-curl-max-connections)
-             (> (length elfeed-curl-queue) 0))
+  "Possibly fire off some new requests."
+  (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-incf elfeed-curl-queue-active)
       (elfeed-curl-retrieve url

    (delete-region (point-min) (point))))

(defun elfeed-curl--parse-response ()
  (re-search-forward "HTTP/1.[0-9] +\\([0-9]+\\)")
  (forward-line 1)
  (string-to-number (match-string 1)))

(defun elfeed-curl--parse-http ()
  (setf elfeed-curl-status-code nil)
  (while (null elfeed-curl-status-code)
    (setf (point) (point-min)

      (if is-http
          (elfeed-curl--parse-http))
      (setf (point) (point-min))
      (elfeed-curl--decode)
      (current-buffer))))

(defun elfeed-curl--cb-wrapper (process status)
  "Adapts a elfeed-curl callback into a process sentinel."
  (let ((buffer (process-buffer process))
        (cb (process-get process :cb))
        (is-http (process-get process :is-http)))
