Anne Hathaway promised to give up alcohol for the next 18 years because she does not want to be drunk or hangover before her son.
The Hollywood star said he did not intend to drink again until Jonathan, now two, left his home.
36-year-old Miss Hathaway revealed to US television that she had made the decision after she got drunk while filming in Mauritius.
She said on Ellen De Gainers' show: "I will stop drinking while my son lives in my house, just because I do not like the way I do it and he gets to the age he really needs in the morning.
"One day I was in school where I left school, did not drive, but I was dirty and that was enough for me."
Miss Hathaway's son was with her in Mauritius last year while she shoots the thriller Serenyi.
One night he went on a tour with the Roma-taster Matthew McConaughey, 49-year-old wife Camilla Alves and her Brazilian wife Camilla Alves, who told the show host that she could not remember much about her.
"I have no idea, both are great, I'm not, and I just can not drink as much as they do," she said.
"Anyway, we drank the night, and I had to meet with Stephen Knight, Director, the next day.
While talking to Knight about her character, she was so persecuted that she "stumbled" and "had an open eye," said Miss Hathaway. In October she went to the top.
Miss Hathaway, who starred in "The Devil Wears Prada" in 2006, and "Lies" in 2012, is married to actor Adam Shulman.
She has already talked about her choice of health, such as losing weight or increasing weight. Although she was a vegetarian, she decides to give up herbal only two years later, saying she does not feel "good or healthy".