An apparatus, comprising: a handheld electronic device including a touchscreen for displaying a virtual keyboard, wherein the device is to: detect a contact patch when the touchscreen is touched by a user attempting to select a certain key of the virtual keyboard to enter a keystroke; determine an active point for the contact patch, the active point being a point at which the touch of the user is determined to have been intended; determine a hot spot for each of multiple keys of a grouping of keys located near the active point, the hot spot for a key being a spot that the device considers to be a center of the key; if the active point is sufficiently close to multiple keys to cause uncertainty as to which key was intended, select a particular key from among the multiple keys as a key intended by the user for the keystroke based on the location of each of the hot spots for the grouping of keys with respect to the active point; include a particular character represented by the particular key as a character in an ongoing stream of text input by the user; determine whether spelling and context considerations are finished for the keystroke; if spelling and context considerations for the keystroke are not finished, process one or more additional keystrokes, and determine after each additional keystrokes whether spelling and context considerations are finished for the keystroke; upon determining that the spelling and context considerations for the keystroke are finished, determine based on the spelling and context considerations for the keystroke whether to change the selection of the particular key as the key intended by the user for the keystroke; and determine whether to relocate the hot spot for the particular key, a relocation of the hot spot for the particular key being based on the determinations leading to the selection of the key intended by the user for the keystroke and being recorded for future use. detect a contact patch when the touchscreen is touched by a user attempting to select a certain key of the virtual keyboard to enter a keystroke; determine an active point for the contact patch, the active point being a point at which the touch of the user is determined to have been intended; determine a hot spot for each of multiple keys of a grouping of keys located near the active point, the hot spot for a key being a spot that the device considers to be a center of the key; if the active point is sufficiently close to multiple keys to cause uncertainty as to which key was intended, select a particular key from among the multiple keys as a key intended by the user for the keystroke based on the location of each of the hot spots for the grouping of keys with respect to the active point; include a particular character represented by the particular key as a character in an ongoing stream of text input by the user; determine whether spelling and context considerations are finished for the keystroke; if spelling and context considerations for the keystroke are not finished, process one or more additional keystrokes, and determine after each additional keystrokes whether spelling and context considerations are finished for the keystroke; upon determining that the spelling and context considerations for the keystroke are finished, determine based on the spelling and context considerations for the keystroke whether to change the selection of the particular key as the key intended by the user for the keystroke; and determine whether to relocate the hot spot for the particular key, a relocation of the hot spot for the particular key being based on the determinations leading to the selection of the key intended by the user for the keystroke and being recorded for future use.