A small IRA terrorist group led by ruthless idealist Jude (Miranda Richardson) and Maguire (Adrian Dunbar) kidnap Jody (Forest Whitaker), a black British soldier serving in Northern Ireland, at a South Armagh funfair.
They threaten to kill him unless one of their imprisoned members is released within three days. One terrorist, Fergus (Stephen Rea), bonds with Jody while guarding him and they learn a great deal – too much – about each other.
Knowing the British won’t give in to the terrorists demands, Jody shows a picture of his girlfriend to Fergus and asks him to look her up if he fails to survive.
Fergus becomes aware that his ruthless colleagues notice his growing friendship towards Jody and they begin to question his loyalty to the cause. To prove his allegiance, Fergus offers to carry out the task of killing their prisoner if the British forces do not comply with their demands.
As Fergus marches the hostage into the woods at gunpoint to carry out the execution, Jody seizes the opportunity and attempts to escape while pleading with Fergus not to shoot as he runs away.
Jody seems to be just on the verge of gaining his freedom when he runs out onto an open road and is fatally struck by an oncoming British armoured car. Within moments the IRA safe house is under attack by British soldiers, but Fergus escapes, leaving Maguire and Jude trapped in a hail of gunfire.
To escape his past, Fergus flees Ireland and moves to London where he assumes the new name of Jimmy and begins working on a building site whilst keeping a low profile.
Haunted by the memory of Jody, Fergus looks up the dead man’s lover, Dil (Jaye Davidson), and is soon so captivated that a quirky romance ensues. But Fergus is tormented by his past, trapped by the lies he has told Dil and agonising over a past life she is unaware of – but its Fergus who’s in for the biggest shock.
Later, Jude and Maguire reappear unexpectedly, demanding that Fergus help them with one last assassination. The assignment is a probable suicide mission for Fergus, but the plan is botched resulting in Maguire’s death instead.
Seeking revenge, Jude appears at Dil’s apartment, only to be gunned down by Dil, who’s been devastated by the news of Fergus’s involvement in Jody’s death. Fergus takes the responsibility for Dil and goes to prison, where Dil visits him regularly, patiently awaiting his release.