Arms are messed up upon weapon switch

Hello, I’m working on a MW3 M4A1 port to L4D2. Everything is good, except that when I switch weapons, the arms get messed up. I have the bonepreserve commands in and everything, but I still get this:

The arms only get fixed when I switch from Boomer Bile and back to this weapon.
I didn’t even touch the M16’s (gun I’m replacing) skeleton at all, would could I be doing wrong?

Just to let you know, this is the model/Skins section for Gmod. Since there is none for L4D2, you will have to go here and ask them there.

Looks like bad rigging.

Don’t replace arms models, or use modified ones in the weapon script.

There needs to be $definebone info in the qc to put the bones that are shared into the right order. $bonemerge also needs to be on all the arm/hand/finger bones. Putting an $attachment on all those bones also works, but $bonemerge is easier.