Anne Hathaway stopped drinking because of her ''five day'' hangovers.

The 'Devil Wears Prada' had previously vowed to not have alcohol until her son turns 18 but she insists it is not a ''moralistic stance'' and is not because she has a problem with drinking but only because it gives her bad hangovers.

She explained to Boston Common magazine: ''I didn't put [a drink] down because my drinking was a problem; I put it down because the way I drink leads me to have hangovers and those were the problem. My last hangover lasted for five days. When I'm at a stage in my life where there is enough space for me to have a hangover, I'll start drinking again, but that won't be until my kid is out of the house. But, I just want to make this clear: Most people don't have to do such an extreme thing. I don't think drinking is bad. It's just the way I do it - which I personally think is really fun and awesome - is just not the kind of fun and awesome that goes with having a child for me. But this isn't a moralistic stance.''

Anne - who has three-year-old son Jonathan with her husband Adam Shulman - previously revealed she had quit drinking.

Speaking earlier this year, she said: ''I quit drinking back in October, for 18 years. I'm going to stop drinking while my son is in my house just because I don't totally love the way I do it and he's getting to an age where he really does need me all the time in the morning. I did one school run one day where I dropped him off at school, I wasn't driving, but I was hungover and that was enough for me. I didn't love that one.''