docs: function removeDeletedNodes(path, callback) {
  
      function maybeUnlink(pathToDelete, stats, callback) {
        if(pathsToSync.indexOf(pathToDelete) !== -1) {
          return callback();
        }
  
        // Make sure this file isn't unsynced before deleting
        fsUtils.isPathUnsynced(fs, pathToDelete, function(err, unsynced) {
          if(err) {
            return handleError(err, callback);
          }
  
          if(unsynced) {
            // Don't delete
            return callback();
          }
  
          // Make sure this file isn't conflicted before deleting.
          // Conflicted copies will not be touched by rsync
          conflict.isConflictedCopy(fs, pathToDelete, function(err, conflicted) {
            if(err) {
              return handleError(err, callback);
            }
  
            if(conflicted) {
              // Don't delete
              return callback();
            }
  
            paths.synced.push(pathToDelete);
  
            if(stats.isDirectory()) {
              fs.rmdir(pathToDelete, callback);
            } else {
              fs.unlink(pathToDelete, callback);
            }
          });
        });
      }
  
      function processRemoval(subPath, callback) {
        var nodePath = Path.join(path, subPath);
  
        fs.lstat(nodePath, function(err, stats) {
          if(err) {
            return handleError(err, callback);
          }
  
          if(!stats.isDirectory()) {
            return maybeUnlink(nodePath, stats, callback);
          }
  
          removeDeletedNodes(nodePath, callback);
        });
      }
  
      function removeDeletedNodesInDir(dirContents, stats) {
        async.eachSeries(dirContents, processRemoval, function(err) {
          if(err) {
            return handleError(err, callback);
          }
  
          maybeUnlink(path, stats, function(err) {
            if(err) {
              return handleError(err, callback);
            }
  
            callback(null, paths);
          });
        });
      }
  
      fs.lstat(path, function(err, stats) {
        if(err && err.code !== 'ENOENT') {
          return callback(err);
        }
  
        // Bail if the path is a file/link or
        // the path does not exist, i.e. nothing was patched
        if((err && err.code === 'ENOENT') || !stats.isDirectory()) {
          return callback(null, paths);
        }
  
        fs.readdir(path, function(err, dirContents) {
          if(err) {
            return handleError(err, callback);
          }
  
          removeDeletedNodesInDir(dirContents, stats);
        });
      });
    }