I maintain a state flag for each logical section of my application. I have a subroutine the captures the keycodes MENU and BACK and process these "action keys" in a subroutine using a "select case" framework to determine what Help or Menu screen to display or where to go next in my App. This is working out quite well in my current project. I always know where I am and what I am going to do next and able to capture the asynchronous keycode events and process them in an orderly manner. This way there are no "surprises" when running the App. I created a subroutine to set the current state and call that frequently in my App.