Joints deleted when welds are added

I’m adding welds connecting limbs to the torso when a tool is selected. This is a hassle with filtering enabled, and very confusing. If I create the weld and set its Part0 and Part1 to the torso and arm, then put it in the torso, the server will automatically delete the RightShoulder joint. If I parent it first and then set the Part0 and Part1, the property changes to Part0 and Part1 will not replicate. I also can’t change the Part0 and Part1 of the original joints to nil because those changes won’t replicate. I can change the parent of the original joints to nil temporarily, but the server doesn’t keep a reference to them and will garbagecollect them before the client parents them back when the tool is deselected.

This is annoying. What is the correct way to weld arms while a tool is equipped and restore their joints when it is unequipped? Are these bugs?