         p.element.prop 'checked', val if p.element.is(':checked') isnt val
       else
         p.element.prop 'checked', val is p.element.val() if p.element.is(':checked') isnt  (val is p.element.val())
-  p.element.bind 'change', ->
+  p.element.bind 'changed', ->
     val = getProperty(p.vm, p.property)
     if VmHelper.isArray val
       if p.element.is(':checked')

      newValue = if p.element.attr('type') is 'checkbox' then p.element.is(':checked') else p.element.val()
      setProperty(p.vm, p.property, newValue) if val isnt newValue

ViewModel.addBind 'change', (p) ->
  propToFunc = {}
  if _.isObject(p.elementBind.change)
    propToFunc = p.elementBind.change
  else
    b = p.elementBind
    propWithValue = b.value or b.checked or b.text or b.focused or b.hover
    if propWithValue
      propToFunc[propWithValue] = p.elementBind.change

  if _.size(propToFunc)
    for prop of propToFunc

        $(this).attr "selected", this.value in newValue
    else if p.element.val() isnt newValue
      p.element.val newValue
    p.element.trigger 'changed'

    return if c.firstRun
    if isInput and not VmHelper.delayed[delayName + "X"]
