   # recover from exceptional conditions and generally a good idea to call this
   # method before starting a new series of packet parsing transitions.
   reset: ->
-    @bytesRead = 0
+    @_bytesRead = 0
     @bytesWritten = 0
     @pattern = null
     @callback = null

          @nextField()
          @nextValue()

    @bytesRead - start

  close: ->
    @emit "close"

        if part.unpacked
          loop
            b = buffer[offset]
            @_bytesRead++
            offset++
            @value[@offset] = b
            @offset += @increment
            break if @offset is @terminal
            return @_bytesRead - start if offset is end

        # Otherwise we're packing bytes into an unsigned integer, the most
        # common case.
        else
          loop
            b = buffer[offset]
            @_bytesRead++
            offset++
            @value += Math.pow(256, @offset) * b
            @offset += @increment
            break if @offset == @terminal
            return @_bytesRead - start if offset is end

        # Unpack the field value.
        bytes = value = @value
