When typing 'C-c $' (flyspell-correct-word-before-point) near a misspelled word, or opening the flyspell context menu from keyboard, the menu is displayed at random place on the screen. It seems the intention was to pop up the menu at the mouse position, even when no mouse is used, but ad-hoc code in flyspell-emacs-popup fails to do this correctly. One variant is to use (popup-menu-normalize-position nil) that correctly returns the mouse position. But it has a usability problem: often the mouse pointer is far away from the misspelled word. So the best thing to do here is to popup the menu exactly under the misspelled word: