Hi Murray,
Ok, adding the button under the browse is the easy bit, and I'll dealwith that in a second.
However, your understanding of Sessions and Threads is inaccurate, and far more important. First off a session <> a thread. Indeed, a single session will result in many, many threads happening.
Specifically in this case, if you use an In-Memory file to create a browse, and the file is /THREADED, then by the time the user _sees_ the browse, the file is already gone. In short, the thread that _generates_ the browse page lasts about 1 tenth of a second and then is no more.
Certainly it's no longer there when the user clicks on a button.
So the first thing you need to do is make the memory table so the data is available across threads, and add a "SessionId" field to the table so you can filter the table based on a specific session number.
Ok, back to the button. The best way to add extra controls to the browse, is to put the browse on a Form. In other words you'd have the Form (memory, not file based, no Save or cancel buttons, style probably "None") with a Browse as one field, and then a button as another.
Cheers
Bruce