A key negotiator from the school siege in Beslan, south Russia, has said shooting by armed civilians provoked the final slaughter of the hostages.
Police, troops and armed locals had mixed outside the school
Ruslan Aushev told the Novaya Gazeta newspaper that the civilians had opened fire at the school after an explosion sent children streaming out.
The captors told negotiators by phone they were going to "let off the bombs".
Hurled into a chaotic situation, Russian commandos suffered heavy losses when they finally fought their way in.
Mr Aushev, former president of the neighbouring Russian region of Ingushetia, was at the hostage rescue HQ on Friday for the final moments of the siege.
A day earlier, he had helped negotiate the release of 26 people, including babies, when he personally went into the building.
The shooting by the irregulars - described by Mr Aushev as an "idiotic third force" - started a chain reaction, he said.
Armed men had inserted themselves among the security forces surrounding the school. Some are believed to have been fathers of hostages inside.
Mr Aushev said the hostage-takers had agreed to allow emergency workers in to collect the bodies of 21 people.
As the workers moved in, there was an explosion. Surviving hostages say the blast came from inside the heavily mined building, apparently triggered by mistake.
Some commandos died shielding hostages with their bodies, reports say
"The first woman to get out said one of the fighters had tripped on a wire or something and there was an explosion," Mr Aushev told Novaya Gazeta.
When shooting erupted, the rescue HQ tried in vain to persuade the hostage-takers that it was not the security forces attacking.
"The official [security] forces were not shooting, the captors were not shooting and we were yelling at each other: 'Who's doing the shooting?'" said the former Ingush leader.
"Then those in the school said 'Right, that's it, it's time to let off the bombs'. They thought they were being stormed! ...It was only then the order to storm the building was given."
The first official Russian statement on the end of the siege said the commandos had been "prevented from acting effectively at some stage".
Security sources have told Russian media that seven members of the elite Alpha unit and three members of fellow crack unit Vympel were killed in the fighting, and a total of 26 commandos wounded.
Reports say the commandos were at a similar school 30 km from Beslan, in training for a rescue operation, when news of the fighting broke and they arrived 40 minutes late, when any element of surprise had been lost.