         #console.log("#{@id} -- remaining queued edits for next time: ", @edit_stack)
         # process the incoming edits
         for edits in edit_stack
-            console.log("#{@id} -- our shadow version = #{@shadow_version} and client shadow version #{edits.shadow_version}")
+            console.log("#{@id} -- our shadow version = #{@shadow_version} and other shadow version #{edits.shadow_version}")
             # If edits.shadow_version does not equal @shadow_version, then there was a packet duplication or loss.
             if edits.shadow_version < @shadow_version
                 console.log("Duplicate Packet: we have no interest in edits we have already processed.")

    # Create a list of new edits, then send all edits not yet
    # processed to the other end of the connection.
    push_edits: (cb) =>
        edits = {edits:@_compute_edits(@shadow, @live)}

        if edits.edits.length > 0
            edits.shadow_version = @shadow_version
            edits.shadow_checksum = @_checksum(@shadow)
            # console.log("#{@id} -- push_edits -- #{misc.to_json(edits)}")
            @edit_stack.push(edits)
            console.log("#{@id} -- shadow changes: '#{@shadow}' --> '#{@live}'  (version #{@shadow_version+1})")
            @shadow = @_copy(@live)
            @shadow_version += 1
        else
            # console.log("#{@id} -- push_edits -- (nothing new)")


dmp = new diff_match_patch()

class DSync0
    constructor: (opts) ->
        opts = defaults opts,
            id   : undefined
