A black South African MP said that she punched a man in self-defence after he allegedly hurled racial abuse at her.
Phumzile van Damme from the opposition Democratic Alliance said she got into a row with a white woman at Cape Town's V&A Waterfront when the man intervened.
She said the man, who was white, was "threatening violence" and used vulgar language to tell her to get out, referring to her as "you black".
The V&A Waterfront, a top tourist site, has apologised for the incident.
Ms van Damme was unhappy with the treatment she received from a security officer when she reported the incident.
"We regret this incident, which we did not handle with the necessary objectivity, respect and empathy," the V&A Waterfront said on its Twitter account.
Ms van Damme said she was standing in a queue in the supermarket when she had a quarrel with a woman who allegedly told her she would "push [her] aside".
"Then when I went out, she was standing there with her family in a threatening manner. And I went to her and said, 'why are you looking at me in a threatening manner?' Then she said, 'it's because you're black', Ms van Damme said in a video on Twitter.
She said a man, who was with the woman, "was threatening violence so in self-defence, I punched him in the head".