This paper makes two contributions to the literature on the impact of trade on income. First, we use heterogeneous panel cointegration techniques that are robust to omitted variables and endogenous regressors to estimate the effect of trade on income for 81 developed and developing countries, both for the sample as a whole and for each individual country. Second, we use a general-to-specific variable selection approach to identify important determinants of the effect of trade on income. Our main findings are: (i) A one percent increase in the trade share of GDP yields, on average, a statistically significant increase in income per worker of about 0.16 percent. This result is in contrast to previous studies, which tend to produce either unreasonably large or statistically insignificant estimates of the impact of trade on income. (ii) There are large cross-country differences in the income effects of trade, in particular between developed and developing countries. For developed countries the income effect of trade is positive, whereas trade has, on average, a negative impact on income in developing countries. (iii) The cross-country heterogeneity in the impact of trade on income can be explained mainly by cross-country differences in primary export dependence, labour market regulation, and property rights protection. The level of property rights protection is positively related, while the level of primary export dependence and labour market regulation is negatively related to the income effect of trade.