Hansel And Gretal actress Gemma Arterton has revealed that some of the combat training she underwent for the role paid off when she punched a homeless man in the face for squeezing her bottom.
The star said she ran off after she realised what she had done, saying: "I actually felt quite bad about it."
Arterton, 27, spoke about the incident during an interview for this week's Graham Norton show which is to be screened tonight on BBC1.
She said: "I was in one of those ATM cash machine rooms and there was a tramp in there. He kept looking at me and then he grabbed my bum really hard.
"I turned round and properly punched him in the face. I then realised I'd punched a tramp in the face so I ran. Thank God he didn't punch me back.
Arterton, who is reported to have recently split from her husband Stefano Catelli, said she was attracted to her latest movie role, inspired by the Brothers Grimm fairytale, because of the action.
"It's one of the reasons I wanted to do the film because I've always wanted to punch people. It was fun.
"I had to do lots of training because I had never done anything like it before and I loved it, absolutely loved it."
Arterton told how she has been confronted by real-life violence before she found fame as an actress when she worked in a karaoke bar.
"It was a bit dodgy and occasionally I would get threatened. I would get asked for "My Way" 10 times a night and when I said no, this guy pulled out a crowbar and went for me. Honest Dave, the owner, saved me and said that if that happened again I should sing "My Heart Will Go On" by Celine Dion because it really chills everyone.
"It was like a soothing balm over all the drunken gangsters and from then on when it got a bit fraught he would say, 'Gemm, do Titanic'."