Benedict Cumberbatch once ''joke-punched'' a journalist for bad-mouthing Keira Knightley.

The 'Atonement' star defended his stunning co-star by lashing out after a member of the press reportedly said something rude about her at an event.

Speaking in the July issue of ELLE UK magazine, Keira recalled: ''When I saw him [Benedict] again, I said, 'Did you punch a journalist?' and he was like, 'I f***ing did.' Everybody needs a friend like that.''

Despite her budding friendship with Benedict, 37, one thing the pals won't be doing together is karaoke as the 29-year-old actress hates singing in front of people.

She explained: ''I hate karaoke. Like, I really, really hate it. I have to be so drunk I'm nearly about to fall down before I sing in front of anybody. It just terrifies me.

''But, also, among the people you go with, there will be somebody who secretly has an amazing voice, and you're just like, 'F*ck off.'''

As well as her hate for public singing, the brunette beauty also has insecurities when she's out and about doing her every day routine because she gives off a ''bad energy''.

She said: ''I have an on/off switch and, when I'm doing publicity, I'm absolutely OK, but when I'm not working and people come up to me, I've not got the head on to handle that. I don't give off a nice energy and that makes me still feel awkward. I think it's dreams and fantasies. People want you to be a specific kind of person and if, in the flesh, you're not, that can be tremendously disappointing.''