Why do you need to clone the values too?
Why don't you clone only the hash?
http://stackoverflow.com/questions/4157399/how-do-i-copy-a-hash-in-ruby