This demo demonstrates an issue with Safari 5.0.4 (6533.20.27) handing of hashes and replace state. When a hash is set, and then replaced using replaceState the history list are then broken, when traversing back the hash does not change.
Note: The issue requires a clean history list, as such this should always be opened in a new tab/window where there are no prior history items.
Reported by Benjamin Lupton author of History.js