The browse has a unique key.
This unique key has a field.
I'm gonna call this field
cus:id
if you right-click on the browse procedure in the tree, you'll see a line like this;
Loc:Selected = Choose(p_web.IfExistsValue('Cus:Id'),p_web.GetValue('Cus:Id'),p_web.GetSessionValue('Cus:Id'))
Loc:Selected now holds the record id for the record it thinks should be selected.
So if you cleared loc:selected then "nothing is selected" and then the first row will be selected.
This works fine if this browse is _only_ called from this form. (remember "returning from a form counts as "calling the browse"). So for most people the above technique will not work.
So the alternative is to _clear_ the value, and session value, before the browse is called. ie on the form in the app tree, right-click and choose source.
search for the routine called
Value::BrowseCustomers
at the top of this routine embed the following;
p_web.SSV('cus:id','')
p_web.SetValue('cus:id','')
Cheers
Bruce