hi Chuck,
The changing of the primary key value is not something that is officially supported, although as you noted it does at least mostly work. Cascading that through to the browse though may be very difficult because the browse relies on a stored POSITION and by changing the primary key the old POSITION setting is useless.
In other words, there's no way to match the browse to the changed record, because the POSITION of the changed record is unknown.
So I'm not sure a solution to your problem is even possible.
What I would do in this case is attack the problem from a slightly different direction.
a) add a unique field, and key, to the table. (You can leave the Primary key, and field unchanged - just add another unique field to the table.) Personally I'd use a random string for this, but you can use an auto-number if you like.
b) change the browse and form to use this field as the "Unique Key" instead of the Primary key.
That way the Position key is not changing, and it should preserve the position ok.
cheers
Bruce
PS - remember the Unique key is for finding data, not sorting it, so your sorting on the browse should remain unchanged.
cheers
Bruce