To make the diff smaller (and a future merge easier) how about making _M_get_mutex() return this->_M_mutex instead? If that branch exists there are several changes I want to push to it :)