Thanks yet again Ben. That indeed was the fix I was after (and will add flush_collected to my list of read-only methods that may help - I usually reserve thinking that Flush is a write-only method but hey, whatever works).
And debugging this doesn't really help in this scenario since:
a) You can see the download working perfectly;
b) All the framework code around it that still doesn't imply you need to do flush_collected).
I think debugging is actually the number 1 reason I don't like BOPF since unless you understand _all_ aspects like this; you are completely lost at what you should do and it takes so much framework code to delve into the underlying implementation code (obviously you can jump straight into the class code but you don't get to see the whole picture and that implies you start debugging by first going to transaction BOBF)!
But then again, maybe my dislike only refers to the ENA aspects???
Cheers,
Matt