Until Death

New Orleans narcotics detective Anthony Stowe (Jean-Claude Van Damme) is a heroin addict who is teetering on the edge of oblivion, and he could not care less. At the moment, he is trying to bring down his former partner Gabriel Callahan (Stephen Rea), who has become a drug kingpin. Callahan is trying to, and slowly succeeding at, taking over the New Orleans underworld.
Stowe botches a sting operation against Callahan, resulting in the death of fellow cop Maria Ronson (Rachel Grant), whose fiancee, fellow cop Van Huffel (Adam Leese), nearly comes to blows with him over it. Chief Mac Baylor (Gary Beadle) has a very blunt chat with Stowe, who is dismissive. Stowe is approached by fellow cop Walter Curry (Trevor Cooper) to help his nephew beat a drug-dealing charge; he instead turns Curry over to Baylor, who fires him. After barricading himself in the station bathroom, Walter confronts an unrepentant Stowe and condemns him for betraying his fellow officers.
That night Stowe meets with his estranged wife Valerie (Selina Giles), who tells him that she's pregnant, but that he's not the father. Valerie, whose marriage with Stowe is close to collapse, has been seeing a man named Mark Rossini (Mark Dymond), the gym teacher at the school she is principal of. But he may not be the father either. Stowe brashly accuses Valerie of being impregnated by Callahan, and she tells him she never wants to see him again.
The only thing keeping Stowe from total collapse is his dogged pursuit of Callahan. But he drunkenly stumbles into an ambush masterminded by Callahan, and is shot in the head by Callahan's right-hand man Jimmy (Stephen Lord). Stowe undergoes emergency surgery, and ends up in a coma. Months later, he recovers to the point that he opens his eyes, and is transported to his and Valerie's house to recover properly.
Seven months later, Stowe is slowly learning to walk and speak again. He manages to survive an attempt on his life by someone who appears to be a cop. He attempts to get his job back, but Chief Baylor refuses, in light of discovering his heroin addiction. The coma has led to his decision to become a better man, and to right some wrongs. He reconciles with his wife, although awkwardly, and gives Walter a significant portion of insurance money that compensated his time in a coma. Finally, he visits the grave of fellow police officer Serge (William Ash), who once saved Stowe's life but has been killed by an unknown attacker following another failed sting operation.
Valerie packs up to move out of the house so she can live with Mark, but after realizing the change that Stowe has undergone, she later decides to leave Mark and come home. Stowe is convinced by his friend Chad Mansen (Wes Robinson) not to let his wife go, and goes after her. They miss each other by a few minutes.
Just after Valerie returns and meets Chad, some of Callahan's men show up. Jimmy kills Chad, and kidnaps Valerie. Stowe returns to the house, and finds Chad's body, along with Jimmy waiting for him.
Jimmy takes Stowe to a warehouse where Callahan is waiting. Along the way, Stowe manages to overpower Jimmy and take his gun, but he finds that the odds against him are impossible and Callahan has Valerie hostage. Van Huffel is revealed to be Callahan's mole on the police force, and the sting operation at the beginning of the film was a set-up. Walter suddenly arrives and saves Stowe. Together they kill all of Callahan's men, including Jimmy and Van Huffel, as Callahan tries to escape with Valerie to his helicopter. Just as they are about to reach it, Stowe grabs Callahan, and fires a shot that kills Callahan. Chief Baylor gives Stowe his job back. Three years later, Valerie has a 3-year-old daughter, the baby that Valerie was pregnant with.

Question: Who kills Callahan?
Answer: Stowe.