           map[val[0]] = val[1]
 
       if changed
-        updating = true
-        collection.touch subscribers
-        updating = false
+        try
+          updating = true
+          collection.touch subscribers
+        finally
+          updating = false
 
     generator = ->
       subscribers[@key] = true

  #     console.log event
  #     emit.call collection, event, items

  $link = (keyFn, valFn = -> @val) ->
    valuePerItem = Object.create null
    ->
      {key} = this


      # If not found, listens for its apparition.
      eventName = "key=#{remoteKey}"
      listener = (event, item) ->
        # If the events are due to an update of this link or if the item is
        # exiting, just returns.
        return if updating or event isnt 'enter'

        # Register its value.
        valuePerItem[key] = valFn.call item

        if once
          # Removes the now unnecessary listener.
          collection.removeListener eventName, listener

        # Force the object to update.
        try
          updating = true
          collection.touch key
        finally
          updating = false
      collection.on eventName, listener

      # Returns `null` for now.
