The Bacillus subtilis genes hemB, hemC and hemD, encoding respectively the enzymes porphobilinogen synthase, hydroxymethylbilane synthase and uroporphyrinogen III synthase, have been expressed in Escherichia coli using a single plasmid construct. An enzyme preparation from this source converts 5-aminolaevulinic acid (ALA) preparatively and in high yield into uroporphyrinogen III. The Pseudomonas denitrificans genes cobA and cobI, encoding respectively the enzymes S-adenosyl-L-methionine:uroporphyrinogen III methyltransferase (SUMT) and S-adenosyl-L-methionine:precorrin-2 methyltransferase (SP2MT), were also expressed in E. coli. When SUMT was combined with the coupled-enzyme system that produces uroporphyrinogen III, precorrin-2 was synthesized from ALA, and when SP2MT was also added the product from the coupling of five enzymes was precorrin-3A. Both of these products are precursors of vitamin B12, and they can be used directly for biosynthetic experiments or isolated as their didehydro octamethyl esters in > 40% overall yield. The enzyme system which produces precorrin-3A is sufficiently stable to allow long incubations on a large scale, affording substantial quantities (15-20 mg) of product.