In this paper we study a single-server system with Erlang-r distributed service times and arbitrarily distributed interarrival times. It is shown that the waiting-time distribution can be expressed as a finite sum of exponentials, the exponents of which are the roots of an equation. Under certain conditions for the interarrival-time distribution, this equation can be transformed to r contraction equations, the roots of which can easily be found by successive substitutions. The conditions are satisfied for several practically relevant arrival processes. The resulting numerical procedures are easy to implement and efficient and appear to be remarkably stable, even for extremely high values of r and for values of the traffic load close to 1. Numerical results are presented.