We propose a distinction between two kinds of metonymy: "referential" metonymy, in which the referent of an NP is shifted, and "predicative" metonymy, in which the referent of the NP is unchanged and the argument place of the predicate is shifted instead. Examples are, respectively, "The hamburger is waiting for his check" and "Which airlines fly from Boston to Denver". We also show that complications arise for both types of metonymy when multiple coercing predicates are considered. Finally, we present implemented algorithms handling these complexities that generate both types of metonymic reading, as well as criteria for choosing one type of metonymic reading over another.