We propose a method of analysing genetic data to obtain separate estimates of the size (Np) and migration rate (mp) for the sampled populations, without precise prior knowledge of mutation rates at each locus (µL). The effects of migration and mutation can be distinguished because high migration has the effect of reducing genetic differentiation across all loci, whereas a high mutation rate will only affect the locus in question. The method also takes account of any differences between the spectra of immigrant alleles and of new mutant alleles. If the genetic data come from a range of population sizes, and the loci have a range of mutation rates, it is possible to estimate the relative sizes of the different Np values, and likewise the mp and the µL. Microsatellite loci may also be particularly appropriate because loci with a high mutation rate can reach mutation–drift–migration equilibrium more quickly, and because the spectra of mutants arriving in a population can be particularly distinct from the immigrants. We demonstrate this principle using a microsatellite data set from Mauritian skinks. The method identifies low gene flow between a putative new species and populations of its sister species, whereas the differentiation of two other populations is attributed to small population size. These distinct interpretations were not readily apparent from conventional measures of genetic differentiation and gene diversity. When the method is evaluated using simulated data sets, it correctly distinguishes low gene flow from small population size. Loci that are not at mutation–migration–drift equilibrium can distort the parameter estimates slightly. We discuss strategies for detecting and overcoming this effect.