Laptop computers are increasingly being used as recording devices to capture meetings, interviews, and lectures using the laptop’s local microphone. In these scenarios, the user frequently also uses the same laptop to make notes. Because of the close proximity of the laptop’s microphone to its keyboard, the captured speech signal is significantly corrupted by the impulsive sounds the user’s keystrokes generate. In this paper we propose an algorithm to automatically detect and remove keystrokes from a recorded speech signal. The detection and removal stages both operate by exploiting the natural correlations present in speech signals, but do so in different ways. The proposed algorithm is computationally efficient, requires no user-specific training or enrollment, and results in significantly enhanced speech. The proposed keystroke removal algorithm was evaluated through user listening tests and speech recognition experiments on speech recordings made in a realistic environment.