There are indications that poor people may face obstacles to their rural-urban migration. This article pursues the question of whether this is the case in the South African context. It argues for the importance of longitudinal data, which are not available at present, to answer this question conclusively. Levels of education can be used as a proxy for income levels, and the article examines recently published multivariate data in this regard. However, using education as a proxy for income is problematic, because education has an independent effect on migration rates through its selection of those with the skill levels demanded by the labour market. The article develops an argument about the constraining effects of the costs of migration and the role of social networks in migration and ends by demonstrating how the costs of migration can solve a number of puzzles presented by empirical research on migration.