A procedure for the simultaneous confirmation of codeine, morphine, 6-acetylmorphine, hydrocodone, hydromorphone, oxycodone, and oxymorphone in urine specimens by gas chromatography-mass spectrometry (GC-MS) is described. After the addition of nalorphine and naltrexone as the two internal standards, the urine is hydrolyzed overnight with beta-glucuronidase from E. coli. The urine is adjusted to pH 9 and extracted with 8% trifluoroethanol in methylene dichloride. After evaporating the organic, the residue is sequentially derivatized with 2% methoxyamine in pyridine, then with propionic anhydride. The ketone groups on hydrocodone, hydromorphone, oxycodone, oxymorphone, and naltrexone are converted to their respective methoximes. Available hydroxyl groups on the O3 and O6 positions are converted to propionic esters. After a brief purification step, the extracts are analyzed by GC-MS using full scan electron impact ionization. Nalorphine is used as the internal standard for codeine, morphine, and 6-acetylmorphine; naltrexone is used as the internal standard for the 6-keto-opioids. The method is linear to 2000 ng/mL for the 6-keto-opioids and to 5000 ng/mL for the others. The limit of quantitation is 25 ng/mL in hydrolyzed urine. Day-to-day precision at 300 and 1500 ng/mL ranged between 6 and 10.9%. The coefficients of variation for 6-acetylmorphine were 12% at both 30 and 150 ng/mL. A list of 38 other basic drugs or metabolites detected by this method is tabulated.