Z Position when rotating an animation

I am making a side scroller game where each body part, arm, leg, etc, is a child object of my main character. I can get them to animate properly by placing one plane in front of the other when going in one direction, but when I flip my character to the left it places that plane behind the main character object instead of keeping it at its initial position.z location, which then places the arm behind the character. I want to keep it in front of my character.

var faceRight : boolean;
var mainCharacter : Transform;
var armTransform : Transform;
var zPos : float;

function Start(){
 mainCharacter = GameObject.Find("Main Character").transform;
 armTransform = mainCharacter.Find("Arm").transform;
 zPos = armTransform.position.z;
}

function Update(){
 mainCharacter.transform.localEulerAngles.z = ( faceRight ) ? 0 : 180;
 armTransform.position.z = zPos;

This actually doesn’t change the position.z of the child (arm) object. I have also tried renderer.material.renderQueue. Doesn’t work.

I was able to get it working using the renderer.material.renderQueue = 2090; 3000, 3010 etc strategy and leaving the .z alone.