James McAvoy developed chronic diarrhoea after bingeing for a role.

The Scottish star attempted to bulk up for Danny Boyle's gritty new drama 'Filth' - based on Irvine Welsh's 1998 novel - by gorging on carb-heavy meals and guzzling endless pints of Guinness ale, until his bowels started to reject his unhealthy new diet and he was almost hospitalised.

He said: ''I tried to get fat by eating fish suppers and drinking Guinness and whisky for four weeks. But my insides just rejected it and I ended up having a huge two-and-a-half week 'episode' before Christmas. My bowels just said no.''

The 33-year-old actor's new film sees him play corrupt policeman Bruce Robertson and comes just after his disturbing Boyle thriller 'Trance' and he is conscious of gravitating towards dark and twisted roles.

James was raised by his grandparents on a housing estate in Drumchapel, Glasgow, after his mother became ill and he thinks his obsession with shocking films stems from his tough upbringing.

He said: ''I think when big s**t happens to you when you're young it sensitises you to the fact that you're not the only person in the world.

''You start to look outwards earlier, and to see that heavy s**t is happening everywhere. I think that's what started me on the path of watching people, which I've never really stopped.''