I was just porting Rubinius' implementation, [here](https://github.com/rubinius/rubinius/blob/master/kernel/common/hash.rb#L39). Not quite sure why it does that though.