One night, while out rowing in the middle of a lake, John Haloran (Peter Read) and his young wife Louise (Luana Anders) argue about his rich mother's will. Louise is upset that everything is currently designated to go to charity in the name of a mysterious "Kathleen." John tells Louise that, if he dies before his mother (Eithne Dunn), Louise will be entitled to none of the inheritance. He promptly drops dead from a massive heart attack. Thinking quickly, the scheming Louise throws his fresh corpse over the side of the boat, where he comes to rest at the bottom of the lake. Her plan is to pretend that he is still alive to ingratiate her way into the will. She types up a letter to Lady Haloran, inviting herself to the family's Irish castle while her husband is "away on business."
Upon arrival, she immediately notices that things are a little strange in the castle. She observes John's two brothers, Billy (Bart Patton) and Richard (William Campbell) taking part in a bizarre ceremony with their mother as part of a yearly ritualistic tribute to their young sister Kathleen, who died many years before in a freak drowning accident. Lady Haloran still mourns for her; and, during the ceremony, she faints dead away as she does every year. As Louise helps her into the house, her mother-in-law tells her that she fainted because one of the flowers she had thrown had died as it touched Kathleen's grave.
Louise, realizing that Lady Haloran is emotionally overwrought and superstitious, devises a plan intended to convince the old woman that Kathleen is trying to communicate with her from beyond the grave. This plan involves stealing some of the dead girl's old toys and placing them at the bottom of the estate's pond where they will float to the surface in the middle of the day in an ostensibly ghostly way. At night, Louise swims into the pond and begins placing the toys as planned; however, she is shocked to see what appears to be Kathleen's perfectly preserved corpse at the bottom of the pond. Horrified, she swims to the surface—and is abruptly axed to death by an unknown assailant. The killer then drags Louise's bloody corpse away.
Concerned family doctor Justin Caleb (Patrick Magee) arrives and becomes determined to solve the mystery. He questions the family in an intense, almost insane manner. Meanwhile, the murderer strikes again, decapitating a man who is poaching on the estate (Karl Schanzer). Dr. Caleb has the pond drained, revealing a stone shrine for Kathleen, with the words "Forgive Me, Kathleen" on the monument. The following night, Lady Haloran is attacked by a shadowy figure, but she eludes him and collapses in the castle's courtyard.
Finally, Dr. Caleb uses an obscure nursery rhyme ("Fishie, fishie, in a brook, Daddy caught you on a hook") recited by Billy under hypnosis to help him discover Louise's corpse hidden in a meat freezer. Next to the body is a wax figure of Kathleen. Dr. Caleb places the figure in a public square to lure the killer. Taking the bait, a gibbering Billy attempts to kill Richard's fiancée Kane (Mary Mitchel) with an axe; he has become insane with guilt over having caused the death of his sister Kathleen. Dr. Caleb removes a gun from his coat pocket and shoots Billy to death.