Mel Gibson initially turned down the role of William Wallace, feeling that he was too old for the part (Gibson was 38 at the time, while the real Wallace died at 35) , but Paramount Pictures would finance the film only if Gibson starred in it, so he agreed.
In an October 2009 interview with "The Daily Mail," Mel Gibson admitted that the film was heavily fictitious, but claimed the changes had been made for dramatic purposes. He also admitted he had always felt he was at least a decade too old to play Wallace.
One of the film's weary extras reportedly mistook one of Mel Gibson's children on the set for an errand boy, and asked him to bring a cup of tea. Gibson was within earshot, and nodded and whispered to his son, "Go get it."
Mel Gibson later said regarding this film, "Some people said that in telling the story we messed up history. It doesn't bother me because what I'm giving you is a cinematic experience, and I think films are there first to entertain, then teach, then inspire. There probably were historical inaccuracies--quite a few. But maybe there weren't, who's to say, because there was very little history about the man. It wasn't necessarily authentic. In some of the stuff I read about him, he wasn't as nice as he was on film. We romanticized it a bit, but that's the language of film--you have to make it cinematically acceptable. Actually, he was a monster--he always smelled of smoke because he was always burning people's villages down. He was like what the Vikings called a 'berserker'. But we kind of shifted the balance a bit, because somebody's got to be the good guy and somebody the bad guy, and every story has its own point of view. That was our bias."
Wallace's two most trusted captains throughout the film are Hamish, who is Scottish, and Stephen, who is Irish. Hamish was played by Irish actor Brendan Gleeson and Stephen by Scottish actor David O'Hara.