Jody, un soldat noir de l'armée britannique affecté en Irlande, est enlevé par l'I.R.A.. Fergus, chargé de le surveiller, s'intéresse à lui et un étrange dialogue s'instaure entre eux, fait de haine, de pitié et de sympathie, tandis que Fergus s'attire les reproches de ses "supérieurs", en particulier de son ex-petite amie, l'implacable Jude. On ordonne à Fergus d'exécuter Jody qui se met à courir dans la forêt et meurt tué par un char britannique venu assiéger le repaire des terroristes. Tous sont anéantis, sauf Fergus qui fuit en Angleterre, près de Londres, pour y retrouver Dil, l'aimée de Jody et lui transmettre l'ultime message qui lui était destiné. Dil travaille dans un salon de coiffure. Ils font connaissance, Fergus plaît à Dil qui l'emmène à son appartement. Là, Fergus découvre la vérité : Dil est un travesti, ce qui le désoriente complètement. C'est le moment que choisissent Jude et Tim, qui ont survécu au massacre, pour confier à Fergus une nouvelle mission afin qu'il se "rachète" : assassiner un notable de l'endroit. C'est en fait une mission suicidaire que Fergus accepte contre la vie sauve de Dil que Jude menace de tuer. Le jour "J", Fergus se retrouve lié au lit de Dil qui a voulu se venger de lui. Et finalement, c'est ce qui le sauvera, car Jude et Tim meurent dans leur tentative d'assassinat. Fergus, en prison, reçoit les visites de Dil, fidèle et attentionné.