The 
(defmacro cl:multiple-value-call (function &rest exprs)
  (let (args)
    (dolist (expr exprs)
      (setq  cl:*multiple-values* nil)
      (let* ((result (eval expr)))
        (if cl:*multiple-values*
            (dolist (rslt *rslt*) (push rslt args))
            (push result args))))
    (setq args (reverse args))
    `(progn
       (setq cl:*multiple-values* nil)
       (apply ,function ',args)))
The 
Before applying the function to the list of values the
Examples:
> (funcall #'+
    (cl:values 1 2)
    (cl:values 3 4))
4  ; (apply #'+ (1 3))
> (cl:multiple-value-call #'+
    (cl:values 1 2)
    (cl:values 3 4))
10  ; (apply #'+ (1 2 3 4))