> Intuitively for me > hash.keys {|k,v| v > 200 } #keys should return the hash's keys, IMHO it shouldn't iterate over these keys. If you want to reject certain keys, call reject on these keys as returned. The phrase "reject certain keys" put into the right order would be in ruby lingo: hash.keys.reject {|k| hash[k] > 200} If you think these methods are valuable, Enumerable is an open module and you can add new methods at any time. Thomas.