How to reproduce:
1. User U1 clicks edit page and gets a lock.
2. User U2 clicks edit page.
3. User U2 sees the lock of U1 and overrides it. Now user U2 has the lock of the page.
4. User U1 saves his changes.
5. User U2 saves his changes.
6. User U1's modifications are overridden (lost).
After pressing "save changes" (step 4) but without actually saving the changes yet, user U1 should be informed that he lost the lock and he should be shown the current state of the page so he can take the appropriate actions. Also, User U2 should be informed that the page changed while he was holding the lock and he should be showed the state of the page as well.
This is a first step into conflict resolution. It should be easy to do and would minimise the loss of page modifications in the current lock-based mechanism. At least the user will be aware and he will have a basic tool to fix it (the current version of the page, not necessarily with diffs).
The next step would be to remove locks altogether and go to concurrent change awareness and conflict resolution. This would be a diff based approach (subclipse file compare style).
The law of "Don't lose the user's data" should be respected.