There is a problem with the order of execution of interspersed source and call blocks will not be executed in order because of the way org-babel-execute-buffer is written (first all the source blocks, then all the call blocks).
Therefore, when executing an entire buffer, there is no way to have the execution of a call block dependent on the prior execution of a source block. Given the following: #+name: one(v="one") #+begin_src elisp v #+end_src #+call: one("two") #+name: three(v="three") #+begin_src elisp v #+end_src The message buffer shows: executing Elisp code block (one)... (v (quote "one")) Code block evaluation complete. executing Elisp code block (three)... (v (quote "three")) Code block evaluation complete. executing Elisp code block (one)... (v (quote "two")) "two" executing Emacs-Lisp code block... (results (quote "two"))