Molecular genetic manipulations in mycobacteria would benefit from procedures which efficiently select for double-crossover events by homologous recombination. Here we describe a vector-host system for gene replacement in mycobacteria, the utility of which was investigated using functional inactivation of the pyrF gene in Mycobacterium smegmatis as a model. This system is based on the expression of the wild-type rpsL gene coding for ribosomal protein S12 in a streptomycin-resistant host. Owing to the absence of a mycobacterial origin the plasmids are unable to replicate autonomously in mycobacteria. The first selection for maintenance of cloned sequences is conferred by the kanamycin-resistance gene. The second simultaneous selection by streptomycin is against maintenance of cloned sequences which contain the gene encoding the streptomycin-sensitive allele of the rpsL gene. By placing the gene for positive selection and that used for negative selection within and outside the target gene of interest, respectively, gene replacement is obtained. A one-step double selection procedure provides a means to distinguish strictly between gene replacement by double crossover versus homologous recombination by single crossover events. The system should have considerable potential for genera or species where single-crossover events or even illegitimate recombination are the predominant recombination mechanisms. It should also be of wide use for the construction of mutants without a selectable phenotype.