South Africa all-rounder Jacques Kallis battled through the pain barrier to stroke a century on Monday but his heroics mean he is unlikely to play any further part in the third and final Test against India.
Kallis was hit on the chest by a S Sreesanth delivery before he was last man out as he helped the hosts to a first-innings total of 362.
He doggedly stayed on the pitch to pile up 161 runs but will now be unable to bowl or field and will only bat if South Africa are in dire straits during their second innings.
"Jacques took a blow to the side of the chest and has a contusion on the right rib with an accompanying muscle strain. He will definitely bat if needed to in the second innings but won't take the field when India bat," team manager Mohammed Moosajee told a news conference.
"The recovery time is about two weeks and he will probably miss the first two one-day internationals," he added.
Kallis's fine innings gave South Africa an early advantage and their bowlers backed up the good work by claiming two quick wickets as India slipped to 28 for two before Gautam Gambhir and Sachin Tendulkar lifted them to 142 for two at stumps.
"It's nice to contribute in an important game at a vital time so this hundred means as much as any of the others," Kallis said after scoring his 39th Test century.
"It wasn't easy out there, the pitch is quite tough, there's a bit of bounce and lateral movement. So it's great to come through a challenge like that, that's why we play the game. It was very satisfying," he added.
The series is tied at 1-1.