This is a very frustrating problem, and it seems to happen quite often, but I can't reproduce it voluntarily. I will be working on an assembly and all of a sudden I will notice a lock on a sub-assembly, even though when I opened it there wasn't a lock and I did not double-click it to edit it in my upper assemlby. Then the frustrating part is when I purge the lock, it updates my assembly and throws away lots and lots of constraints that I can't get back. Anyone else experience this? What causes it and how can we prevent it?