The transition from outcrossing to selfing through the breakdown of distyly to homostyly has occurred repeatedly among families of flowering plants. Homostyles can originate by major gene changes at the S-locus linkage group, or by unlinked polygenic modifiers. Here, we investigate the inheritance of distyly and homostyly in Primula oreodoxa, a subalpine herb endemic to Sichuan, China. Controlled self- and cross-pollinations confirmed that P. oreodoxa unlike most heterostylous species is fully self-compatible. Segregation patterns indicated that the inheritance of distyly is governed by a single Mendelian locus with the short-styled morph carrying at least one dominant S-allele (S-) and long-styled plants homozygous recessive (ss). Crossing data were consistent with a model in which homostyly results from genetic changes at the distylous linkage group, with the homostylous allele (Sh) dominant to the long-styled allele (s), but recessive to the short-styled allele (S). Progeny tests of open-pollinated seed families revealed high rates of intermorph mating in the L-morph but considerable selfing and possibly intramorph mating in the S-morph and in homostyles. S-morph plants homozygous at the S-locus (SS) occurred in several populations but may experience viability selection. The crossing data from distylous and homostylous plants are consistent with either recombination at the S-locus governing distyly, or mutation at gene(s) controlling sex-organ height; both models predict the same patterns of segregation. Recent studies on the molecular genetics of distyly in Primula demonstrating the hemizygous nature of genes at the S-locus make it more likely that homostyles have resulted from mutation rather than recombination.