Thanks Bruce.
1. Yes, unable to duplicate.
2. In offices (live webserver, many different computers + browsers) it sometimes works, sometimes not, yup.
3. No global vars.
4. Where the issue is happening there is no filename passed, so it uses whatever p_web generates for it, ie $$$84147.pdf.
5. I log in under different sessions, open the same/different record and click the button for each session as quick as possible, and both generate the pdf fine.
I think the whole multi-user thing sounds it might be a goer (to do with the cause), but not sure how to reliably make it break.
In the template code, when setting loc:ProgressName = p_web.GetValue('_ProgressName_'), is it possible to get two the same of _ProgressName_ and that being the issue, that the webserver then doesn't send it back to the second browser?