       @tocNodes.on 'tree:add',    (model, collection, options) => @tocNodes.add model, options
       @tocNodes.on 'tree:remove', (model, collection, options) => @tocNodes.remove model, options
 
+      @tocNodes.on 'change:title', (model, collection, options) =>
+        if model.get('title') != @$xml.find('title').text()
+          @$xml.find('title').text(model.get('title'))
+          @_save()
+
       @getChildren().on 'add remove tree:change tree:add tree:remove', (model, collection, options) =>
         setNavModel(options)
       @getChildren().on 'change reset', (collection, options) =>

      # This is useful when the OPF file was remotely updated
      @_localAddedItems[model.id] = model


    _loadComplex: (fetchPromise) ->
      fetchPromise

          if not _.isEmpty _.omit model.changedAttributes(), ['_isDirty', '_hasRemoteChanges', '_original', 'dateLastModifiedUTC']
            # Delay the save a little bit because a move is a remove + add
            # which would otherwise cause 2 saves
            @_save()


    _parseNavModel: () ->
