 
     _setStateFromStores: -> @setState @getStateFromStores()
 
-    shouldComponentUpdate: (nextProps, nextState) ->
-        return not(_.isEqual(nextState, @state)) or
-            not (_.isEqual(nextProps, @props))
-
     render: ->
+        @props.valueLink.requestChange @state.known
+
         renderTag = (address, idx) =>
             remove = =>
-                known = @state.known.filter (a) ->
-                    return a.address isnt address.address
-                @props.valueLink.requestChange known
+                @setState known: @state.known.filter (a) ->
+                    a.address isnt address.address
 
             onDragStart = (event) =>
                 event.stopPropagation()

        state.selected = 0
        state.open     = false
        state.focus    = !!state.known.length
        return state

    # Code from the StoreWatch Mixin. We don't use the mixin
    # because we store other things into the state

                    event.dataTransfer.setData @props.id, true

            onDragEnd = (event) ->
                remove() if event.dataTransfer.dropEffect is 'move'

            if address.name? and address.name.trim() isnt ''
                display = address.name
