I think this is okay. This only gets called on :add as there is more specific code for :update and :delete as this is in a case block.

The old way always called Index#sync_message and this one does also, it just also runs the Message#sync_back and from within there we force a call to Index#sync_message, which otherwise would have only ran if @dirty which is set because of location change.

Unless I am missing something (and I probably am) don't we always need to make sure the Maildir is in sync and don't we always want the index to updated with changes?

The only thing I am seeing wrong with this after studying it is that within the :add there is another call to UpdateManage-->:updated for old messages, this is always called in Message#sync_back so I should come up with some way to skip it in one of the locations and I am thinking within the Message#sycback would make more sense. 
``` ruby
            if old_m
              # if a message has been modified send the :updated signal
              # so that existing listed messages can be updated with
              # new labels, etc.
              UpdateManager.relay self, :updated, m
            else
              UpdateManager.relay self, :added, m
            end
```

Do you see anything else that I am overlooking?