1) Changed the call to mnv_start() From mnv_start(help_message_number, text_col, text_row) To mnv_start(menu_title, menu_prompt, mode) - Menu title is a text string, up to 60 characters, that will be displayed at the top of the menu window and centered. - menu_prompt is a text string that is displayed at the bottom of the menu as a prompt to the user. - Mode is used to indicate which mode, out of three, the menu should run in. Mode 0 - PLAIN MODE. User finds their selection by scrolling and selects it by pressing the enter key. Mode 1 - HOT KEYS. User can make selections by pressing a single key which is displayed next to the menu choice. User can also scroll though the list and select using the enter key. Mode 2 - HYPER TEXT. This mode allows the user to find a selection by typing in a string of characters. As the string is typed the menu finds the first item that begins with the entered string. This is capable of regular expression searches. It uses A MATCHES statement to perform the search, so anything valid in a MATCHES statement is valid here. When running in hyper text mode you should sort the items BEFORE adding them to the menu. It is just easier to deal with it that way. I could not sort it after it came in as the return value would not match up with the calling function's array. Remember The menu returns the line number of the item selected. I did remove the help as I did not wish to try to implement any help in our system. Actually I just removed it from the mnv_start() call. 2) Also I removed the text_col, and text_row variables from the call and made the menu always show up at the same location. This allowed me better/easier control over the dynamic sizing of the window. The Menu is designed to work in most windows 80X24 without problems from menu items being to long or having to many menu items. 3) I Expanded the menu item description to be 60 charaters wide to provide a little bit more description for users. This is dynamic and the window will size according to the largest menu item. 4) I increased the menu array from 50 to 500 (I know a little over kill, but then I'm not the only one using it) I did run into issues with an array of 50. Plus when running in hyperText mode 500 it is actually possible to use it. 5) To accomadate the menu title/prompt lines I made a few changes in the line control in the mnv_get() function. Also in the mnv_get() function I had to make some minor changes to the way the lines were displayed when using quick_keys as opposed to not using quick_keys. 6) Another feature I added was mnv_dflt(item_number). This allowed me to set up an initial menu item that would be hilighted, and if the user pressed the enter key would be the item selected. This worked good when selecting several items from a table and displaying them. I could check for the item I wanted as a default and select it no matter how the data was sorted. This is an optional funciton. If not called the default menu item is item 1. 7) I Added a flag, displayed, which is used to indicate if the menu has been displayed previously. I found that if I redisplayed the menu several times the maxwidth calculation kept causing problems