Since all source blocks are evaluated on export, I don't think it should be necessary to issue org-babel-execute-buffer before invoking export. However, running HTML export without org-babel-execute-buffer currently produces garbage output. On the other hand, I have several examples where running HTML export _after_ org-babel-execute-buffer produces the wrong output due to the fact that :results replace directive appears to append instead of replacing the output I am attaching three simple examples where I simulate generating and exporting image data (I just generate and print filenames). If I understand the documentation correctly, they are all supposed to produce identical output on HTML export; however, none of the files produces the expected output, namely, blocks of the form: ---- | some output | images/conv1.png | | images/conv1.png \-- Here, the first two lines should be enclosed in a code block, and the last line should be raw org output. To reproduce, load any of my examples, do C-c C-e h <- will produce garbage output on export C-c C-v b <- will produce expected output in the buffer C-c C-e h <- will produce extraneous output on export despite :results replace being on C-c C-v b <- will produce extraneous output in the buffer This was tested on my test-export4.org, but the other examples behave in a similar fashion. --Leo