     all_keys = all_keys.concat(new_hash.keys())
     all_keys = all_keys.uniq()
     changed_hash_keys = []
-    all_keys.each ((key) ->
+    all_keys.each (key) ->
       old_value = old_hash.get(key)
       new_value = new_hash.get(key)
       if old_value != new_value
         changed_hash_keys.push key
       return
-    ).bind(this)
     observers_to_call = []
-    changed_hash_keys.each ((key) ->
+    changed_hash_keys.each (key) =>
       observers = @observers.get(key)
       if !observers?
         return
       observers_to_call = observers_to_call.concat(observers)
       return
-    ).bind(this)
     universal_observers = @observers.get(null)
     if universal_observers?
       observers_to_call = observers_to_call.concat(universal_observers)

    @deferred_sets.push hash
    if replace
      @deferred_replace = true
    set = (->
      @deferred_set_timer = null
      new_hash = @current_hash
      @deferred_sets.each (m) ->


    # The last value received by the hashchange event:
    @last_hashchange = @current_hash.clone()
    Element.observe window, 'hashchange', @hashchange_event
    return

