         @dbg("_process_updates", "#{misc.len(new_patches)} new patches")
 
         # There are new patches
-        write_updates = false
+        write_updates = []
         for string_id, patches of new_patches
             string = @strings[string_id]
             last_sync_before = string.last_sync


    _squash_patches: (opts) =>
        opts = defaults opts,
            to_delete : required
            string_id : required
            last_sync : required
            timestamp : required
            cb        : undefined
        @dbg("_squash_patches", "string_id=#{opts.string_id}")
        async.series([
            (cb) =>
                # write big new patch
                patch = diffsync.dmp.patch_make('', opts.last_sync)
                @db.update
                    table : 'syncstrings'
                    set   :

                string.live = diffsync.dmp.patch_apply(patch, string.live)[0]
                string.emit('change')

            # If live != last_sync, write our changes back to database
            if string.live != string.last_sync
                write_updates.push(string_id)

        if write_updates.length > 0
            #@dbg("_process_updates","writing our own updates back")
            # safe to call skipping lock, since we have the lock
            @_write_updates_to_db write_updates, (err) =>
                cb(err, true)
        else
            #@dbg("_process_updates","no further updates from us (stable)")
