David Cronenberg's cinematic intensity eviscerates this adaptation of David Henry Hwang's passionate stage production.
Based on a true incident involving a French diplomat who carried on an affair for 18 years with a man the diplomat thought was a woman, M. Butterfly begins in 1964 Beijing when French foreign service employee Rene Gallimard (Jeremy Irons) becomes smitten with Chinese opera performer Song Liling (John Lone).
Before long, Gallimard is enamored with Song, and they begin an inflamed affair -- bracketed by the stipulation that Gallimard will never be allowed to look upon her in a state of complete undress.
Gallimard agrees to the rules, but, as he climbs up the diplomatic ladder, the communist government gets involved, corralling Song to become an informer for the government. When, at last, Gallimard's passion demands nudity, Song flees the relationship. Gallimard, pining for his lost love, then becomes a physical and mental wreck.
He leaves China and accepts a two-bit diplomatic position, but then Song appears once again to Gallimard. At that point, Gallimard is arrested and, during the subsequent sensational trial for treason, his affair is exposed for the sham that it is.