Dozens of troops have run amok in the Zimbabwean capital Harare after losing their temper while queuing up to withdraw cash at a bank.
Riot police used tear gas to disperse about 40 soldiers and a number of civilians who joined the protest.
A local journalist told the BBC troops had looted shops and assaulted passers-by, before the authorities managed to restore control.
The disorder comes as much of Harare is without water amid a cholera outbreak.
Zimbabwean journalist Brian Hungwe told the BBC Focus on Africa programme: “It’s unprecedented.
“We’ve never seen members of defence forces marching in towns, breaking into shops and looting. People are very, very shocked.”
The military is seen as one of President Robert Mugabe’s core supporters and was accused of taking part in a campaign of violence against the opposition during this year’s elections.
Correspondents say that the president’s grip on power would be severely weakened if the security forces stopped backing him.
‘Enough is enough’
The soldiers vented their frustration on Monday after waiting all day in a long queue at a bank.
Mr Hungwe said the troops urged civilians to join them, leading a number of passers-by to begin shouting: “Enough is enough, let’s join the soldiers.”
Some riot police stood by smiling as the defence force members ran amok, Mr Hungwe said, before the authorities moved in to disperse the protesters.
He said riot police were still on the streets and there was no sign of the soldiers behind the protest.
The Associated Press news agency reported that gunfire had broken out in central Harare and that hundreds of people had gathered.
Some people threw stones but others cheered on police as they tackled the unarmed troops, who had attacked money-changers, according to AP.
Because of a national cash shortage, Zimbabweans can only withdraw small amounts of money every day – often barely enough to buy a loaf of bread.
The country’s economic freefall has been accelerating and the latest annual inflation rate was 231,000,000%. Just one adult in five is estimated to have a regular job.
Earlier, the state-owned Herald newspaper reported that water in the capital had been cut because of a shortage of purification chemicals, as authorities try to contain a cholera outbreak.
At least 425 people have died in recent months from the disease, which is spread by contaminated water.
The outbreak has been fuelled by the collapse of Zimbabwe’s health and sanitation systems. The disease is easily treatable but hospitals lack medicines and staff.
The health minister said people should stop shaking hands to prevent the disease spreading.