 
     # This is pushed onto the handler stack before calling super().  Therefore, it ends up underneath (or
     # after) all of the other handlers associated with the mode.
-    @suppressPrintableHandlerId = handlerStack.push
+    handlerId = handlerStack.push
       _name: "#{@id}/suppress-printable"
       keydown: handler
       keypress: handler
       keyup: handler
 
     super options
-    @onExit => handlerStack.remove @suppressPrintableHandlerId
+    @handlers.push handlerId
 
 # This watches keyboard events and maintains @countPrefix as number keys and other keys are pressed.
 class MaintainCount extends SuppressPrintable


# This prevents printable characters from being passed through to underlying page.  It should, however, allow
# through chrome keyboard shortcuts.  It's a backstop for all of the modes following.

    "$": "forward lineboundary"
    "0": "backward lineboundary"
    "G": "forward documentboundary"
    "g": "backward documentboundary"
    "Y": -> @selectLine()
    "o": -> @swapFocusAndAnchor()

