Another person has died following a collision between a train and truck in Mpumalanga on Friday morning, bringing the death toll to 20, paramedics said.
Netcare 911 spokesman Jeff Wicks said 23 farm workers were injured, some critically.
The truck had been carrying the workers on the N4 when it collided with the train at a level crossing between Malelane and Hectorspruit, at 7am.
Provincial community safety department spokesman Joseph Mabuza said the train dragged the truck for about 200 metres, leaving bodies with limbs missing scattered on the ground.
The Railway Safety Regulator (RSR) said the coal train had been travelling from Witbank to Maputo. RSR spokesman Sibongiseni Henna said there were 44 people on the truck.
"No injuries to the train crew or damage to the train or [railway] infrastructure were registered," he said.
Safety inspectors were at the scene.
The Congress of SA Trade Unions spokesman Patrick Craven said the accident was an example of poor labour practices.
"This terrible tragedy exposes once again the scandal of workers bring transported in open trucks. In a country where drivers and passengers of cars are legally obliged to wear seatbelts, how can we tolerate workers being transported with absolutely no protection in the event of an accident?"
He called for a full inquiry into the cause of the accident.
Condolences poured in on Friday for the families of the crash victims.
Cabinet spokesman Jimmy Manyi expressed sadness over the accident.
"One death is one too many. Our prayers and thoughts are with the families of the farm workers."
The Democratic Alliance wished those injured a speedy recovery. Spokesman Mmusi Maimane said efforts should be doubled to increase safety at level crossings.
"My colleague in Mpumalanga, DA provincial leader Anthony Benadie, will be taking this matter up in the provincial legislature. Incidents like these should not be happening in South Africa," he said.