I don't like the idea of manipulating the click event handler back and forth like that. What do you think about this solution?

```
    function _updateOverwriteLabel(event, editor, newstate, doNotAnimate) {
        if ($statusOverwrite.text() === (newstate ? Strings.STATUSBAR_OVERWRITE : Strings.STATUSBAR_INSERT)) {
            // label already up-to-date
            return;
        }

        $statusOverwrite.text(newstate ? Strings.STATUSBAR_OVERWRITE : Strings.STATUSBAR_INSERT);
        
        if (!doNotAnimate) {
            AnimationUtils.animateUsingClass($statusOverwrite[0], "flash");
        }
    }
    
    function _updateEditorOverwriteMode(event) {
        var editor = EditorManager.getActiveEditor(),
            newstate = !editor._codeMirror.state.overwrite;

        // update label with no transition
        _updateOverwriteLabel(event, editor, newstate, true);
        editor.toggleOverwrite(newstate);
    }
```

The click handler first changes the label with no animation, so when the "overwriteToggle" event is received, the label has already been changed, so it is not changed with animation.