A bug that disappears or changes behaviour when you are trying to track it down. An example cause of this is the act of debugging changes the program's execution (for example, uninitialised memory patterns or a RaceCondition) in such a way that the bug is not triggered.
See JargonFile:heisenbug, the "BUGS" section of assert(3)