A modem is adapted to accommodate a call waiting feature so that a user can select to continue an ongoing call or accept an incoming call. The modem detects a call waiting signal and generates a call waiting message. Where a call waiting signal is preceded by a loss of carrier, the modem detects the loss of carrier and then detects the presence of energy in a call progress band indicating that a new call is waiting. The modem can be selectably programmed to process the call waiting signal or to provide a call waiting message to a communications software package that can process the call waiting signal. The modem, in conjunction with the communications of software package, responds to the call waiting signal by asking whether the user wants to answer the incoming call or continue with the ongoing communication. The modem generates a programmable default response if the user does not respond within a prescribed time.