Hotshot lawyer Martin Vail (Richard Gere) is hired to defend an altar boy (Edward Norton) accused of murdering a priest. Under cross-examination the mild-mannered Aaron reveals a psychotic alter-ego called Roy, enabling Vail to get him off on the grounds of diminished responsibility. SPOILER ALERT! Congratulating Martin for winning the case, Aaron lets his guard slip. "So there was no Roy," says Vail. "No Marty," replies Norton, "There was no Aaron..."
Jailed for life for a murder he didn't commit, Andy Dufresne (Tim Robbins) becomes firm friends with prison fixer Red (Morgan Freeman). But when Andy loses his last chance to secure his freedom, Red fears he will commit suicide during the night. SPOILER ALERT! In the morning Andy has disappeared from his cell, having spent ten years carving a hole in the wall and hiding the evidence behind a Rita Hayworth poster.
Child psychologist Malcolm Crowe (Bruce Willis) hopes treating troubled youth Cole (Haley Joel Osment) will heal a rift between him and his wife. Realising the boy "sees dead people", Malcolm helps him conquer his fear and use his gift to help the ghosts who come looking for him. SPOILER ALERT! Malcolm realises he himself is a ghost when he returns home to find his sleeping wife clutching the wedding band that used to be on his finger.
After walking unscathed from a train wreck, security guard David Dunn (Bruce Willis) is approached by Elijah Price (Samuel L Jackson), a comic book collector convinced he is, in reality, a super-hero. Dunn is sceptical, but gradually realises he has superhuman strength and paranormal crime-fighting abilities. SPOILER ALERT! The train crash was orchestrated by Price, a mad genius who has been arranging similar disasters in the hope of locating the "unbreakable" Dunn.
Customs detective Dave Kujan (Chazz Palminteri) interrogates cripped low-life 'Verbal' Kint (Kevin Spacey), the lone survivor of a botched raid on a Turkish drug shipment. Kujan learns Kint and his fellow crooks were in the pay of a dreaded kingpin named Keyser Soze, whose identity is a closely guarded secret. SPOILER ALERT! Having let Kint go, Kujan realises too late he was Keyser Soze all along.