       # the missing characters.
       @simulateTextInput(event) if event.defaultPrevented and event.type is 'keydown'
 
+    # Manage the keystroke queue state. State is updated separately for clarity.
+
+    @bindingsToDisable.push(dispatchedExactMatch) if dispatchedExactMatch
     if hasPartialMatches and shouldUsePartialMatches
-      event.preventDefault()
-
       enableTimeout = (
         @pendingStateTimeoutHandle? or
         dispatchedExactMatch? or

    dispatchedExactMatch = null
    partialMatches = @findPartialMatches(partialMatchCandidates, target)
    hasPartialMatches = partialMatches.length > 0

    # Determine if the current keystrokes match any bindings *exactly*. If we
    # do find and exact match, the next step depends on whether we have any

    @queuedKeystrokes.push(keystroke)
    @queuedKeyboardEvents.push(event)
    keystrokes = @queuedKeystrokes.join(' ')

    # If the event's target is document.body, assign it to defaultTarget instead
    # to provide a catch-all element when nothing is focused.
