M. Butterfly is a 1988 play by David Henry Hwang loosely based on the relationship between French diplomat Bernard Boursicot and Shi Pei Pu, a male Peking opera singer.
The play premiered on Broadway at the Eugene O'Neill Theatre on March 20, 1988, closing after 777 performances on January 27, 1990. It was produced by Stuart Ostrow and directed by John Dexter with stars John Lithgow as Gallimard and BD Wong as Song Liling. David Dukes, Anthony Hopkins, Tony Randall, and John Rubinstein played Gallimard at various times during the original run. A highly unusual staging featuring Puccini's music and the Kazakh countertenor Erik Kurmangaliev in the title role was undertaken by Roman Viktyuk in Russia in 1990.
It is currently published by Plume and in an acting edition by Dramatists Play Service. An audio recording of the play was produced by L. A. Theatre Works, with Lithgow and Wong reprising their Broadway roles along with Margaret Cho.