After @stof's comment, I was experimenting with this line over the weekend. As you point out in your comment, we can't simply check for disabled here because it skips the setup we need to do on our initial build. Two options I considered:

**1:** Pass a parameter when running the `results_build` function.

```CoffeeScript
  search_field_disabled: ->
    if @form_field.disabled
      this.disable()
    else
      this.enable(true)

...

  enable: (forceIt=false) ->
    if @form_field.disabled or forceIt
```

**2:** Because the only problem with repeating this function is applying additional event listeners, we could store the return value of the bind function in a variable and only set it when it's empty. On disable, we'd empty it.

```CoffeeScript
enable: ->
  ...
  @boundSomething = @selected_item.bind "focus.chosen", @activate_action unless @is_multiple or @boundSomething?

disable: ->
  ...
  @selected_item.unbind "focus.chosen", @activate_action unless @is_multiple
  @boundSomething = null
```

I kinda hate both of these so I'm curious what you come up with.