I am interested if there is any way to change the functionality of QReadWriteLock's lockForRead and lockForWrite methods while retaining the ability of using them along with QReadLocker and QWriteLocker classes. I noticed lockForRead and lockForWrite methods of QReadWriteLock are not virtual, so when passing derived class to QReadLocker it calls old method. More specifically, I'd like to make lockForRead/lockForWrite methods to be const, because they don't change any data and I think it should be possible to call them on const data. Also I want to add some reporting, so it would be easier to know if some object is locked.