Crash when setting parent

I have this code:

for (var c : Transform in pw1) {
    if (c.gameObject.tag != "WeaponSpawn") {
        var temp : Transform = Instantiate(weapons[count], c.position, c.rotation).transform;
        temp.localScale = new Vector3(3, 3, 3);
        Destroy(c.gameObject);
        temp.parent = pw1;
    }
}

Basically it’s used for changing the weapon on a spaceship - pw1 is a container object, which the weapon is a child of.
pw1 is a Tranform.
I instantiate the new weapon and destroy the old one, then scale the new one, and that all works nicely.
However, when I then try to set the parent of the new weapon, Unity completely crashes and I have to kill it’s process.
Any ideas why this might be happening?
Thanks

I guess the problem ist that you add new childs to the same transform while you iterate through the children… You should work on a copy:

var childs = new List.<Transform>(pw1);
for (var c : Transform in childs) {
    //[...]
}