This paper presents a flow-sensitive interprocedural method for type propagation in an object-oriented language. The primary goal of this method is to obtain a precise call graph in the presence of late binding for function names. Thus, it can be viewed as a preliminary step to interprocedural constant propagation and/or procedure integration in an object-oriented language. It uses a new efficient form of symbolic interpretation in order to limit the amount of intraprocedural analysis required to a single pre-pass over each function. The cost of both this pre-pass and the interprocedural propagation itself is linear in the program size. Furthermore, the output of symbolic interpretation lends itself to efficient incremental computation and can be reused for other tasks, such as constant propagation or code motion.