     @_skipping    = null
     @terminated   = not pattern.terminator
 
-    @fields.push [] if pattern.arrayed and pattern.endianness isnt "x"
+    @_fields.push [] if pattern.arrayed and pattern.endianness isnt "x"
 
   nextValue: ->
     pattern = @pattern[@patternIndex]

      callback = shiftable.pop()

    nameOrPattern = shiftable.shift()
    packet        = @packets[nameOrPattern] or {}
    pattern       = packet.pattern or parsePattern(nameOrPattern)
    callback    or= packet.callback or noop


      # The pattern is set to null, our terminal condition, because the callback
      # may specify a subsequent packet to parse.
      else if ++@patternIndex == @pattern.length
        @_fields.push(@pipeline(@pattern[@patternIndex - 1 ], @_fields.pop()))

        @_fields.push(this)
        for p in @user or []
          @_fields.push(p)

        @pattern = null

        @callback.apply @self, @_fields

      # Otherwise we proceed to the next field in the packet pattern.
      else
        if @pattern[@patternIndex - 1].endianness isnt "x"
          if @pattern[@patternIndex - 1].length
            @pattern[@patternIndex].repeat = @_fields.pop()
          else
            @_fields.push(@pipeline(@pattern[@patternIndex - 1], @_fields.pop()))

        @nextField()
        @nextValue()
