And all of that was completely pointless because the shift key already undoes its own lock.
Phoo