I found a bit of a small bug. This happens in the following circumstances.
Select a menu (f.i. File) with the mouse and then traverse to the right (Edit) with the right arrow key. You may either land upon the Undo or Undo List, in some situations the sub menu of the Undo list will open, good, then press the right arrow key again. The mouse pointer should still be above the File menu. Either you're now on the FTP menu which immediately flipped back to File or it already happened the moment you opened the Edit menu.
As a developer myself I think I know what the problem is. The creation of the submenu which is a window (CreateWindowEx) or Dialog (CreateDialogIndirect) is firing off another WM_MOUSEMOVE event the moment that window is created and since I think you're using Window hook to deal with the menus, it determines that the mouse pointer is still over the File menu in this case, destroys any other window that is presumably placed on a stack and opens up the menu where the mouse pointer is over.
Another small bug:
Pressing the Alt key by itself doesn't leave the first menu item highlighted. It flips on and off again.