A modification (noun) of software or to modify (verb) software. In the past, a patch used to mean changing actual executable, machine instructions, but today more often than not, it means replacing an executable module in its entirety such as an .EXE or .DLL file. A profusion of patches to an application implies that its logic was poorly designed in the first place.
Although the term typically refers to fixing a problem, a patch may also refer to a general enhancement because the two scenarios have become blurred. For example, a security "enhancement" is often a fix for a vulnerability in the program. In addition, software vendors like to announce something new in an update other than just fixing problems. Therefore, applying patches often refers to both fixes and new features. See patch management
and spaghetti code
. See also MIDI patch