Seems odd that a function isHashChangeUnlocked changes the allowHashChange on first call.