var DocumentSettings = Backbone.View.extend({
  events: {
    'submit form': 'invite',
    'change select.change-mode': 'changeMode',
    'click a.remove-collaborator': 'removeCollaborator'
  },
  
  changeMode: function(e) {
    var collaboratorId = $(e.currentTarget).attr('collaborator');
    var mode = $(e.currentTarget).val();
    
    graph.get(collaboratorId).set({
      mode: mode
    });
    // trigger immediate sync
    graph.sync();
    
    return false;
  },
  
  removeCollaborator: function(e) {
    var collaboratorId = $(e.currentTarget).attr('collaborator');
    graph.del(collaboratorId);
    // trigger immediate sync
    graph.sync();
    this.collaborators.del(collaboratorId);
    this.render();
    return false;
  },
  
  invite: function() {
    var that = this;
    $.ajax({
      type: "POST",
      url: "/invite",
      data: {
        email: $('#collaborator_email').val(),
        document: app.document.model._id,
        mode: $('#collaborator_mode').val()
      },
      dataType: "json",
      success: function(res) {
        if (res.error) return alert(res.error);
        that.load();
      },
      error: function(err) {
        alert("Unknown error occurred");
      }
    });
    
    return false;
  },
  
  load: function() {
    var that = this;
    graph.fetch({"type": "/type/collaborator", "document": app.document.model._id}, function(err, nodes) {
      that.collaborators = nodes;
      that.render();
    });
  },
  
  initialize: function() {
    this.el = '#document_settings';
  },
  
  render: function() {
    $(this.el).html(_.tpl('document_settings', {
      collaborators: this.collaborators,
      document: app.document.model
    }));
    this.delegateEvents();
  }
});

@@ -322,29 +322,86 @@
 get).val();%0A
+    var that = this;%0A    %0A    window.pendingSync = true;%0A
     %0A
-
     graph.ge
@@ -445,24 +445,29 @@
 ode%0A    %7D);%0A
+    %0A
     // trigg
@@ -495,24 +495,100 @@
  graph.sync(
+function(err) %7B%0A      window.pendingSync = false;%0A      that.render();%0A    %7D
 );%0A    %0A    
@@ -707,24 +707,81 @@
 aborator');%0A
+    var that = this;%0A    %0A    window.pendingSync = true;%0A
     graph.de
@@ -795,24 +795,29 @@
 boratorId);%0A
+    %0A
     // trigg
@@ -849,27 +849,76 @@
 ph.sync(
-);%0A    this
+function(err) %7B%0A      window.pendingSync = false;%0A      that
 .collabo
@@ -949,20 +949,22 @@
 d);%0A    
-this
+  that
 .render(
@@ -962,24 +962,33 @@
 t.render();%0A
+    %7D);%0A%0A
     return f

Use immediate sync for changeMode() and removeCollaborator().