This paper calculates the effects of immigration on the wages of native US workers of various skill levels in two steps. In the first step we use labor demand functions to estimate the elasticity of substitution across different groups of workers. Second, we use the underlying production structure and the estimated elasticities to calculate the total wage effects of immigration in the long run. We emphasize that a production function framework is needed to combine own-group effects with cross-group effects in order to obtain the total wage effects for each native group. In order to obtain a parsimonious representation of elasticities that can be estimated with available data, we adopt alternative nested-CES models and let the data select the preferred specification. New to this paper is the estimate of the substitutability between natives and immigrants of similar education and experience levels. In the data-preferred model, there is a small but significant degree of imperfect substitutability between natives and immigrants which, when combined with the other estimated elasticities, implies that in the period from 1990 to 2006 immigration had a small effect on the wages of native workers with no high school degree (between 0.6% and +1.7%). It also had a small positive effect on average native wages (+0.6%) and a substantial negative effect (-6.7%) on wages of previous immigrants in the long run.