       @formattedValue value
 
     if @options.special is 'event'
-      @routine @el, value, @currentListener
-      @currentListener = value
+      @currentListener = @routine @el, @model, value, @currentListener
     else if @options.special is 'iteration'
       @routine @el, value, @
     else

    binding.publish() for binding in @select (b) -> b.isBidirectional()

# Cross-browser event binding.
bindEvent = (el, event, fn) ->
  # Check to see if jQuery is loaded.
  if window.jQuery?
    el = jQuery el

    # Assume we are in IE and use attachEvent.
    event = 'on' + event
    el.attachEvent event, fn

  fn

# Cross-browser event unbinding.
unbindEvent = (el, event, fn) ->
