René Gallimard (Jeremy Irons) es destinado a la embajada francesa en Pekín. Durante la representación de Madame Butterfly, la ópera de Puccini, se enamora de Song Liling (John Lone), la diva china que interpreta el papel principal. Sólo tras muchos años de relación, cuando ambos son acusados de espionaje, René descubre que su supuesta amada es un hombre.
Basado en la obra teatral de David H. Hwang -que firma el guión-, el film arrastra un grave problema: su inverosimilitud. Resulta difícil aceptar que lo que se presenta como un idilio imparable sea en realidad una relación homosexual, aunque se base en una historia real -que seguramente habría que matizar bastante-, y los dos actores protagonistas sean excelentes. El film está rodado con corrección por David Cronenberg, que se aleja de sus habituales sanguinolencias; no así de sus obsesiones sexuales, aunque se contenga visualmente más que en otras ocasiones.
José María Aresté