diff --git a/indra/llcharacter/llheadrotmotion.cpp b/indra/llcharacter/llheadrotmotion.cpp
index 812c4201af465815b3e3442c59f0bc7982aaf9f6..e91de7a11d8a17a3e73942957a5ac4342f9f1b17 100644
--- a/indra/llcharacter/llheadrotmotion.cpp
+++ b/indra/llcharacter/llheadrotmotion.cpp
@@ -285,7 +285,10 @@ LLEyeMotion::LLEyeMotion(const LLUUID &id) : LLMotion(id)
 	mName = "eye_rot";
 
 	mLeftEyeState = new LLJointState;
+	mAltLeftEyeState = new LLJointState;
+
 	mRightEyeState = new LLJointState;
+	mAltRightEyeState = new LLJointState;
 }
 
 
@@ -318,18 +321,38 @@ LLMotion::LLMotionInitStatus LLEyeMotion::onInitialize(LLCharacter *character)
 		return STATUS_FAILURE;
 	}
 
+	mAltLeftEyeState->setJoint( character->getJoint("mFaceEyeAltLeft") );
+	if ( ! mAltLeftEyeState->getJoint() )
+	{
+		LL_INFOS() << getName() << ": Can't get alt left eyeball joint." << LL_ENDL;
+		return STATUS_FAILURE;
+	}
+
 	mRightEyeState->setJoint( character->getJoint("mEyeRight") );
 	if ( ! mRightEyeState->getJoint() )
 	{
-		LL_INFOS() << getName() << ": Can't get Right eyeball joint." << LL_ENDL;
+		LL_INFOS() << getName() << ": Can't get right eyeball joint." << LL_ENDL;
+		return STATUS_FAILURE;
+	}
+
+	mAltRightEyeState->setJoint( character->getJoint("mFaceEyeAltRight") );
+	if ( ! mAltRightEyeState->getJoint() )
+	{
+		LL_INFOS() << getName() << ": Can't get alt right eyeball joint." << LL_ENDL;
 		return STATUS_FAILURE;
 	}
 
 	mLeftEyeState->setUsage(LLJointState::ROT);
+	mAltLeftEyeState->setUsage(LLJointState::ROT);
+
 	mRightEyeState->setUsage(LLJointState::ROT);
+	mAltRightEyeState->setUsage(LLJointState::ROT);
 
 	addJointState( mLeftEyeState );
+	addJointState( mAltLeftEyeState );
+
 	addJointState( mRightEyeState );
+	addJointState( mAltRightEyeState );
 
 	return STATUS_SUCCESS;
 }
@@ -343,17 +366,98 @@ BOOL LLEyeMotion::onActivate()
 	return TRUE;
 }
 
-
 //-----------------------------------------------------------------------------
-// LLEyeMotion::onUpdate()
+// LLEyeMotion::adjustEyeTarget()
 //-----------------------------------------------------------------------------
-BOOL LLEyeMotion::onUpdate(F32 time, U8* joint_mask)
+void LLEyeMotion::adjustEyeTarget(LLVector3* targetPos, LLJointState& left_eye_state, LLJointState& right_eye_state)
 {
 	// Compute eye rotation.
+	BOOL has_eye_target = FALSE;
 	LLQuaternion	target_eye_rot;
 	LLVector3		eye_look_at;
 	F32				vergence;
 
+	if (targetPos)
+	{
+		LLVector3		skyward(0.f, 0.f, 1.f);
+		LLVector3		left;
+		LLVector3		up;
+
+		eye_look_at = *targetPos;
+		has_eye_target = TRUE;
+		F32 lookAtDistance = eye_look_at.normVec();
+
+		left.setVec(skyward % eye_look_at);
+		up.setVec(eye_look_at % left);
+
+		target_eye_rot = LLQuaternion(eye_look_at, left, up);
+		// convert target rotation to head-local coordinates
+		target_eye_rot *= ~mHeadJoint->getWorldRotation();
+		// eliminate any Euler roll - we're lucky that roll is applied last.
+		F32 roll, pitch, yaw;
+		target_eye_rot.getEulerAngles(&roll, &pitch, &yaw);
+		target_eye_rot.setQuat(0.0f, pitch, yaw);
+		// constrain target orientation to be in front of avatar's face
+		target_eye_rot.constrain(EYE_ROT_LIMIT_ANGLE);
+
+		// calculate vergence
+		F32 interocular_dist = (left_eye_state.getJoint()->getWorldPosition() - right_eye_state.getJoint()->getWorldPosition()).magVec();
+		vergence = -atan2((interocular_dist / 2.f), lookAtDistance);
+		llclamp(vergence, -F_PI_BY_TWO, 0.f);
+	}
+	else
+	{
+		target_eye_rot = LLQuaternion::DEFAULT;
+		vergence = 0.f;
+	}
+
+	//RN: subtract 4 degrees to account for foveal angular offset relative to pupil
+	vergence += 4.f * DEG_TO_RAD;
+
+	// calculate eye jitter
+	LLQuaternion eye_jitter_rot;
+
+	// vergence not too high...
+	if (vergence > -0.05f)
+	{
+		//...go ahead and jitter
+		eye_jitter_rot.setQuat(0.f, mEyeJitterPitch + mEyeLookAwayPitch, mEyeJitterYaw + mEyeLookAwayYaw);
+	}
+	else
+	{
+		//...or don't
+		eye_jitter_rot.loadIdentity();
+	}
+
+	// calculate vergence of eyes as an object gets closer to the avatar's head
+	LLQuaternion vergence_quat;
+		
+	if (has_eye_target)
+	{
+		vergence_quat.setQuat(vergence, LLVector3(0.f, 0.f, 1.f));
+	}
+	else
+	{
+		vergence_quat.loadIdentity();
+	}
+
+	// calculate eye rotations
+	LLQuaternion left_eye_rot = target_eye_rot;
+	left_eye_rot = vergence_quat * eye_jitter_rot * left_eye_rot;
+
+	LLQuaternion right_eye_rot = target_eye_rot;
+	vergence_quat.transQuat();
+	right_eye_rot = vergence_quat * eye_jitter_rot * right_eye_rot;
+
+	left_eye_state.setRotation( left_eye_rot );
+	right_eye_state.setRotation( right_eye_rot );
+}
+
+//-----------------------------------------------------------------------------
+// LLEyeMotion::onUpdate()
+//-----------------------------------------------------------------------------
+BOOL LLEyeMotion::onUpdate(F32 time, U8* joint_mask)
+{
 	//calculate jitter
 	if (mEyeJitterTimer.getElapsedTimeF32() > mEyeJitterTime)
 	{
@@ -426,83 +530,10 @@ BOOL LLEyeMotion::onUpdate(F32 time, U8* joint_mask)
 		}
 	}
 
-	BOOL has_eye_target = FALSE;
 	LLVector3* targetPos = (LLVector3*)mCharacter->getAnimationData("LookAtPoint");
 
-	if (targetPos)
-	{
-		LLVector3		skyward(0.f, 0.f, 1.f);
-		LLVector3		left;
-		LLVector3		up;
-
-		eye_look_at = *targetPos;
-		has_eye_target = TRUE;
-		F32 lookAtDistance = eye_look_at.normVec();
-
-		left.setVec(skyward % eye_look_at);
-		up.setVec(eye_look_at % left);
-
-		target_eye_rot = LLQuaternion(eye_look_at, left, up);
-		// convert target rotation to head-local coordinates
-		target_eye_rot *= ~mHeadJoint->getWorldRotation();
-		// eliminate any Euler roll - we're lucky that roll is applied last.
-		F32 roll, pitch, yaw;
-		target_eye_rot.getEulerAngles(&roll, &pitch, &yaw);
-		target_eye_rot.setQuat(0.0f, pitch, yaw);
-		// constrain target orientation to be in front of avatar's face
-		target_eye_rot.constrain(EYE_ROT_LIMIT_ANGLE);
-
-		// calculate vergence
-		F32 interocular_dist = (mLeftEyeState->getJoint()->getWorldPosition() - mRightEyeState->getJoint()->getWorldPosition()).magVec();
-		vergence = -atan2((interocular_dist / 2.f), lookAtDistance);
-		llclamp(vergence, -F_PI_BY_TWO, 0.f);
-	}
-	else
-	{
-		target_eye_rot = LLQuaternion::DEFAULT;
-		vergence = 0.f;
-	}
-
-	//RN: subtract 4 degrees to account for foveal angular offset relative to pupil
-	vergence += 4.f * DEG_TO_RAD;
-
-	// calculate eye jitter
-	LLQuaternion eye_jitter_rot;
-
-	// vergence not too high...
-	if (vergence > -0.05f)
-	{
-		//...go ahead and jitter
-		eye_jitter_rot.setQuat(0.f, mEyeJitterPitch + mEyeLookAwayPitch, mEyeJitterYaw + mEyeLookAwayYaw);
-	}
-	else
-	{
-		//...or don't
-		eye_jitter_rot.loadIdentity();
-	}
-
-	// calculate vergence of eyes as an object gets closer to the avatar's head
-	LLQuaternion vergence_quat;
-		
-	if (has_eye_target)
-	{
-		vergence_quat.setQuat(vergence, LLVector3(0.f, 0.f, 1.f));
-	}
-	else
-	{
-		vergence_quat.loadIdentity();
-	}
-
-	// calculate eye rotations
-	LLQuaternion left_eye_rot = target_eye_rot;
-	left_eye_rot = vergence_quat * eye_jitter_rot * left_eye_rot;
-
-	LLQuaternion right_eye_rot = target_eye_rot;
-	vergence_quat.transQuat();
-	right_eye_rot = vergence_quat * eye_jitter_rot * right_eye_rot;
-
-	mLeftEyeState->setRotation( left_eye_rot );
-	mRightEyeState->setRotation( right_eye_rot );
+    adjustEyeTarget(targetPos, *mLeftEyeState, *mRightEyeState); 
+    adjustEyeTarget(targetPos, *mAltLeftEyeState, *mAltRightEyeState); 
 
 	return TRUE;
 }
@@ -519,11 +550,23 @@ void LLEyeMotion::onDeactivate()
 		joint->setRotation(LLQuaternion::DEFAULT);
 	}
 
+	joint = mAltLeftEyeState->getJoint();
+	if (joint)
+	{
+		joint->setRotation(LLQuaternion::DEFAULT);
+	}
+
 	joint = mRightEyeState->getJoint();
 	if (joint)
 	{
 		joint->setRotation(LLQuaternion::DEFAULT);
 	}
+
+	joint = mAltRightEyeState->getJoint();
+	if (joint)
+	{
+		joint->setRotation(LLQuaternion::DEFAULT);
+	}
 }
 
 // End
diff --git a/indra/llcharacter/llheadrotmotion.h b/indra/llcharacter/llheadrotmotion.h
index 569dbef2dd7b7be73ec4f5a8570ac60782752f0f..53ae1813bc1bb5d6a50c991d91a808b5a3fc5665 100644
--- a/indra/llcharacter/llheadrotmotion.h
+++ b/indra/llcharacter/llheadrotmotion.h
@@ -176,6 +176,8 @@ class LLEyeMotion :
 	// it will be deactivated
 	virtual BOOL onActivate();
 
+    void adjustEyeTarget(LLVector3* targetPos, LLJointState& left_eye_state, LLJointState& right_eye_state);
+
 	// called per time step
 	// must return TRUE while it is active, and
 	// must return FALSE when the motion is completed.
@@ -193,6 +195,8 @@ class LLEyeMotion :
 	LLJoint				*mHeadJoint;
 	LLPointer<LLJointState> mLeftEyeState;
 	LLPointer<LLJointState> mRightEyeState;
+	LLPointer<LLJointState> mAltLeftEyeState;
+	LLPointer<LLJointState> mAltRightEyeState;
 
 	LLFrameTimer		mEyeJitterTimer;
 	F32					mEyeJitterTime;
diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml
index 76a603db0617feb155a7a69205738e51f1448d2d..e9ce4725e59e3939ffdf77d2dfded34698d15c52 100644
--- a/indra/newview/character/avatar_lad.xml
+++ b/indra/newview/character/avatar_lad.xml
@@ -807,6 +807,39 @@
         <bone
          name="mHindLimb2Right"
          scale="0 0 0.1" />
+		 
+        <bone
+         name="mWing1Left"
+         offset="0 0 0" /> 
+        <bone
+         name="mWing2Left"
+         offset="-0.015 0.015 0" /> 
+        <bone
+         name="mWing3Left"
+         offset="-0.025 0.025 0" /> 
+        <bone
+         name="mWing4Left"
+         offset="-0.03 0.03 0" /> 
+        <bone
+         name="mWing4FanLeft"
+         offset="-0.03 0.03 0" /> 
+		 
+        <bone
+         name="mWing1Right"
+         offset="0 0 0" /> 
+        <bone
+         name="mWing2Right"
+         offset="-0.015 -0.015 0" /> 
+        <bone
+         name="mWing3Right"
+         offset="-0.025 -0.025 0" /> 
+        <bone
+         name="mWing4Right"
+         offset="-0.03 -0.03 0" /> 
+        <bone
+         name="mWing4FanRight"
+         offset="-0.03 -0.03 0" /> 
+		 
       </param_skeleton>
     </param>
 
@@ -1163,56 +1196,57 @@
          name="mEyeRight"
          scale="0 0 0"
          offset="0 -.009 0" />
-		 
-	    <bone
+
+		 <bone
          name="mFaceEyeAltLeft"
          scale="0 0 0 "
-         offset="0 .009 0" />
+         offset="0 .0090 0" />
 
         <bone
          name="mFaceEyeAltRight"
          scale="0 0 0 "
-         offset="0 -.009 0" />
-		 
+         offset="0 -.0090 0" />
+ 
 	    <bone
          name="mFaceEyeLidLowerLeft"
          scale="0 0 0 "
-         offset="0 .00930 0" />
+         offset="0 .0090 0" />
 
         <bone
          name="mFaceEyeLidLowerRight"
          scale="0 0 0 "
-         offset="0 -.00930 0" />
+         offset="0 -.0090 0" />
+
 		 
 	    <bone
          name="mFaceEyeLidUpperLeft"
          scale="0 0 0 "
-         offset="0 .00930 0" />
+         offset="0 .0090 0" />
 
         <bone
          name="mFaceEyeLidUpperRight"
          scale="0 0 0 "
-         offset="0 -.00930 0" />
+         offset="0 -.0090 0" />
 		 
 	    <bone
          name="mFaceEyebrowInnerLeft"
          scale="0 0 0 "
-         offset="0 .00930 0" />
+         offset="0 .0090 0" />
 
         <bone
          name="mFaceEyebrowInnerRight"
          scale="0 0 0 "
-         offset="0 -.00930 0" />
+         offset="0 -.0090 0" />
 		 
 	    <bone
          name="mFaceEyebrowCenterLeft"
          scale="0 0 0 "
-         offset="0 .00930 0" />
+         offset="0 .0090 0" />
 
         <bone
          name="mFaceEyebrowCenterRight"
          scale="0 0 0 "
-         offset="0 -.00930 0" />
+         offset="0 -.0090 0" />
 		 
 	    <bone
          name="mFaceEyebrowOuterLeft"
@@ -1257,16 +1291,16 @@
          name="mEyeRight"
          scale="0 0 0"
          offset="0 0 -.004" />
-		 
-        <bone
+
+		 <bone
          name="mFaceEyeAltLeft"
          scale="0 0 0"
          offset="0 0 .004" />
 
-        <bone
+		 <bone
          name="mFaceEyeAltRight"
          scale="0 0 0"
-         offset="0 0 -.004" /> 
+         offset="0 0 -.004" />
 
 		<bone
          name="mFaceNoseRight"
@@ -1421,11 +1455,6 @@
      value_min="-1"
      value_max="1">
       <param_skeleton>
-		<bone
-         name="mFaceRoot"
-         scale="0.25 0 0"
-         offset="0 0 0" />
-		 
         <bone
          name="mEyeLeft"
          scale="0 0 0"
@@ -1436,131 +1465,6 @@
          scale="0 0 0"
          offset=".016 0 0" />
 
-        <bone
-         name="mFaceEyeAltLeft"
-         scale="0 0 0"
-         offset=".016 0 0" />
-
-        <bone
-         name="mFaceEyeAltRight"
-         scale="0 0 0"
-         offset=".016 0 0" />
-		 
-		 <bone
-         name="mFaceEyeLidUpperLeft"
-         scale="0 0 0"
-         offset="-0.0038 0 0" />
-
-		 <bone
-         name="mFaceEyeLidUpperRight"
-         scale="0 0 0"
-         offset="-0.0038 0 0" />
-		 
-		 <bone
-         name="mFaceEyeLidLowerLeft"
-         scale="0 0 0"
-         offset="-0.0038 0 0" />
-
-		 <bone
-         name="mFaceEyeLidLowerRight"
-         scale="0 0 0"
-         offset="-0.0038 0 0" />
-
-		<bone
-         name="mFaceNoseCenter"
-         scale="0 0 0"
-         offset=".01 0 0" />
-
-		<bone
-         name="mFaceNoseRight"
-         scale="0 0 0"
-         offset=".005 0 0" />
-
-		<bone
-         name="mFaceNoseLeft"
-         scale="0 0 0"
-         offset=".005 0 0" />
-
-		<bone
-         name="mFaceNoseBase"
-         scale="0 0 0"
-         offset=".005 0 0" />
-
-		<bone
-         name="mFaceLipUpperLeft"
-         scale="0 0 0"
-         offset="0.005 0 0" />
-
-		<bone
-         name="mFaceLipUpperCenter"
-         scale="0 0 0"
-         offset="0.005 0 0" />
-
-		<bone
-         name="mFaceLipUpperRight"
-         scale="0 0 0"
-         offset="0.005 0 0" />
-		 
-		<bone
-         name="mFaceLipCornerRight"
-         scale="0 0 0"
-         offset="0.005 0 0" />
-
-		<bone
-         name="mFaceLipCornerLeft"
-         scale="0 0 0"
-         offset="0.005 0 0" />
-
-		<bone
-         name="mFaceLipLowerLeft"
-         scale="0 0 0"
-         offset="0.01 0 0" />
-
-		<bone
-         name="mFaceLipLowerCenter"
-         scale="0 0 0"
-         offset="0.01 0 0" />
-
-		<bone
-         name="mFaceLipLowerRight"
-         scale="0 0 0"
-         offset="0.01 0 0" />
-		 
-		 
-		<bone
-         name="mFaceCheekLowerLeft"
-         scale="0 0 0"
-         offset="0.007 0 0" />
-		 
-		<bone
-         name="mFaceCheekLowerRight"
-         scale="0 0 0"
-         offset="0.007 0 0" />
-
-		 <bone
-         name="mFaceChin"
-         scale="0 0 0"
-         offset="0.014 0 0" />
-
- 	    <bone
-         name="mFaceTeethUpper"
-         scale="0.28 0 0"
-         offset="0 0 0" />
- 	    <bone
-         name="mFaceTeethLower"
-         scale="0.28 0 0"
-         offset="0 0 0" />
-		 
-		 <bone
-         name="mFaceTongueBase"
-         scale="0.3 0 0"
-         offset="0 0 0" />
-
-		 <bone
-         name="mFaceTongueTip"
-         scale="0 0 0"
-         offset="0.004 0 0" />
-
       </param_skeleton>
     </param>
 	
@@ -1584,6 +1488,7 @@
          name="mEyeRight"
          scale="0 0 0"
          offset=".005 0 0" />
+		 
         <bone
          name="mFaceEyeAltLeft"
          scale="0 0 0"
@@ -1593,7 +1498,7 @@
          name="mFaceEyeAltRight"
          scale="0 0 0"
          offset=".005 0 0" />
-
+		 
 	    <bone
          name="mFaceEyeLidLowerLeft"
          scale="0 0 0 "
@@ -1727,17 +1632,17 @@
          name="mEyeRight"
          scale="1 1 1"
          offset="0 0 0" />
- 
+		 
         <bone
          name="mFaceEyeAltLeft"
          scale="1 1 1"
-         offset="0 0 0" />
+         offset="0 0 -0.001" />
 
         <bone
          name="mFaceEyeAltRight"
          scale="1 1 1"
-         offset="0 0 0" />
- 
+         offset="0 0 -0.001" />
+		 
         <bone
          name="mFaceForeheadLeft"
          scale="1 1 1"
@@ -2087,6 +1992,16 @@
          offset=" 0 0 0" />
 		 
         <bone
+         name="mFaceEyeAltLeft"
+         scale="0 0 0"
+         offset="0 0 0" />
+
+        <bone
+         name="mFaceEyeAltRight"
+         scale="0 0 0"
+         offset="0 0 0" />
+
+		 <bone
          name="mFaceEyeLidUpperRight"
          scale="0 0.3 0.7"
          offset=" 0 0 0" />
@@ -3173,6 +3088,16 @@
          name="mFaceEyeLidUpperLeft"
          scale="0 0.1 0.2"
          offset=" 0 0 0" />
+		 
+        <bone
+         name="mFaceEyeAltLeft"
+         scale="0 0 0"
+         offset="0 0 0" />
+
+        <bone
+         name="mFaceEyeAltRight"
+         scale="0 0 0"
+         offset="0 0 0" />
 
        </param_skeleton>
     </param>
@@ -3351,6 +3276,16 @@
          name="mFaceEyebrowInnerLeft"
          scale="0 0 0"
          offset="0 0.00225 -0.0048" />
+		 
+		 <bone
+         name="mFaceEyeAltRight"
+         scale="0 0 0"
+         offset="0 -0.0042 -0.0035" />		 
+
+		 <bone
+         name="mFaceEyeAltLeft"
+         scale="0 0 0"
+         offset="0 0.0042 -0.0035" />		 
 
 		 <bone
          name="mFaceEyeLidUpperRight"
@@ -3754,6 +3689,16 @@
 		 <bone
          name="mFaceEyeLidUpperRight"
          scale="0 0 0"
+         offset="0 0 -.006" />
+
+		 <bone
+         name="mFaceEyeAltLeft"
+         scale="0 0 0"
+         offset="0 0 -.006" />
+
+		 <bone
+         name="mFaceEyeAltRight"
+         scale="0 0 0"
          offset="0 0 -.006" />
 
        </param_skeleton>
@@ -3929,6 +3874,16 @@
 		 offset = "0.015  0.00  0.005"
          scale  = "0.0 0.0 0.0" />
 
+		 <bone
+		  name="mFaceEyeAltRight"
+		  scale="0 0 0"
+		  offset="0 -0.0033 0.0025" />
+
+		 <bone
+		  name="mFaceEyeAltLeft"
+		  scale="0 0 0"
+		  offset="0 0.0033 0.0025" />
+		 
 		<bone
 		 name="mFaceEyeLidLowerRight"
 		 scale="0 0 0"
@@ -4098,9 +4053,183 @@
          name="mFaceEyeAltRight"
          scale="0.3195 0.3280 0.3280"
          offset="-0.005 0 0" />
+
+      </param_skeleton>
+    </param>
+
+    <param
+     id="30772"
+     group="1"
+     name="EyeBone_Head_Elongate"
+     value_min="-1"
+     value_max="1">
+      <param_skeleton>
+	  
+		<bone
+         name="mFaceRoot"
+         scale="0.25 0 0"
+         offset="0 0 0" />
+
+		<bone
+         name="mFaceEyeLidUpperLeft"
+         scale="0 0 0"
+         offset="-0.0038 0 0" />
+
+		 <bone
+         name="mFaceEyeLidUpperRight"
+         scale="0 0 0"
+         offset="-0.0038 0 0" />
 		 
+		 <bone
+         name="mFaceEyeLidLowerLeft"
+         scale="0 0 0"
+         offset="-0.0038 0 0" />
+
+		 <bone
+         name="mFaceEyeLidLowerRight"
+         scale="0 0 0"
+         offset="-0.0038 0 0" />
+
+		<bone
+         name="mFaceNoseCenter"
+         scale="0 0 0"
+         offset=".01 0 0" />
+
+		<bone
+         name="mFaceNoseRight"
+         scale="0 0 0"
+         offset=".005 0 0" />
+
+		<bone
+         name="mFaceNoseLeft"
+         scale="0 0 0"
+         offset=".005 0 0" />
+
+		<bone
+         name="mFaceNoseBase"
+         scale="0 0 0"
+         offset=".005 0 0" />
+
+		<bone
+         name="mFaceLipUpperLeft"
+         scale="0 0 0"
+         offset="0.005 0 0" />
+
+		<bone
+         name="mFaceLipUpperCenter"
+         scale="0 0 0"
+         offset="0.005 0 0" />
+
+		<bone
+         name="mFaceLipUpperRight"
+         scale="0 0 0"
+         offset="0.005 0 0" />
+		 
+		<bone
+         name="mFaceLipCornerRight"
+         scale="0 0 0"
+         offset="0.005 0 0" />
+
+		<bone
+         name="mFaceLipCornerLeft"
+         scale="0 0 0"
+         offset="0.005 0 0" />
+
+		<bone
+         name="mFaceLipLowerLeft"
+         scale="0 0 0"
+         offset="0.01 0 0" />
+
+		<bone
+         name="mFaceLipLowerCenter"
+         scale="0 0 0"
+         offset="0.01 0 0" />
+
+		<bone
+         name="mFaceLipLowerRight"
+         scale="0 0 0"
+         offset="0.01 0 0" />
+		 
+		 
+		<bone
+         name="mFaceCheekLowerLeft"
+         scale="0 0 0"
+         offset="0.007 0 0" />
+		 
+		<bone
+         name="mFaceCheekLowerRight"
+         scale="0 0 0"
+         offset="0.007 0 0" />
+
+		 <bone
+         name="mFaceChin"
+         scale="0 0 0"
+         offset="0.014 0 0" />
+
+ 	    <bone
+         name="mFaceTeethUpper"
+         scale="0.28 0 0"
+         offset="0 0 0" />
+ 	    <bone
+         name="mFaceTeethLower"
+         scale="0.28 0 0"
+         offset="0 0 0" />
+		 
+		 <bone
+         name="mFaceTongueBase"
+         scale="0.3 0 0"
+         offset="0 0 0" />
+
+		 <bone
+         name="mFaceTongueTip"
+         scale="0 0 0"
+         offset="0.004 0 0" />
+
       </param_skeleton>
     </param>
+	
+    <param
+     id="31772"
+     group="1"
+     name="EyeBone_Head_Elongate"
+     value_min="0"
+     value_max="1">
+      <param_skeleton>
+	  
+        <bone
+         name="mFaceEyeAltLeft"
+         scale="0 0 0"
+         offset="0.0058 0 0" />
+
+        <bone
+         name="mFaceEyeAltRight"
+         scale="0 0 0"
+         offset="0.0058 0 0" />
+
+      </param_skeleton>
+    </param>		 
+	
+    <param
+     id="32772"
+     group="1"
+     name="EyeBone_Head_Elongate"
+     value_min="0"
+     value_max="1">
+      <param_skeleton>
+	  
+        <bone
+         name="mFaceEyeAltLeft"
+         scale="0 0 0"
+         offset="-0.0032 0 0" />
+
+        <bone
+         name="mFaceEyeAltRight"
+         scale="0 0 0"
+         offset="-0.0032 0 0" />
+
+      </param_skeleton>
+    </param>		 
+	
 
     <!-- Eye Brow sliders -->
 
@@ -14577,6 +14706,23 @@ render_pass="bump">
 
         <driven
          id="772" />
+		
+		<driven
+		 id="30772" />
+		 
+		<driven
+		 min1="0"
+		 max1="0"
+		 max2="0"
+		 min2="0.45"
+		 id="31772" />
+		 
+		<driven
+		 min1="0.5"
+		 max1="1"
+		 max2="1"
+		 min2="1"
+		 id="32772" />
 		 
       </param_driver>
     </param>
diff --git a/indra/newview/character/avatar_skeleton.xml b/indra/newview/character/avatar_skeleton.xml
index 2c63b8092dcf2fbb3193845cb502024383d68fb8..2241a12545ffd942b86c3ed87422cdceb0ac0798 100644
--- a/indra/newview/character/avatar_skeleton.xml
+++ b/indra/newview/character/avatar_skeleton.xml
@@ -21,11 +21,11 @@
                            <bone aliases="head avatar_mHead" connected="true" end="0.000 0.000 0.079" group="Torso" name="mHead" pivot="0.000000 -0.000000 0.075630" pos="0.000 -0.000 0.076" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" support="base">
                               <collision_volume end="0.000 0.000 0.100" group="Collision" name="HEAD" pos="0.02 0 0.07" rot="0.000000 0.000000 0.000000" scale="0.11 0.09 0.12" support="base"/>
                               <bone aliases="figureHair avatar_mSkull" connected="false" end="0.000 0.000 0.033" group="Extra" name="mSkull" pivot="0.000000 0.000000 0.079000" pos="0.000 0.000 0.079" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" support="base"/>
-                              <bone aliases="avatar_mEyeRight" connected="false" end="0.100 0.000 0.000" group="Extra" name="mEyeRight" pivot="0.098466 -0.036000 0.079000" pos="0.098 -0.036 0.079" rot="0.000000 0.000000 -0.000000" scale="1.000 1.000 1.000" support="base"/>
-                              <bone aliases="avatar_mEyeLeft" connected="false" end="0.100 0.000 0.000" group="Extra" name="mEyeLeft" pivot="0.098461 0.036000 0.079000" pos="0.098 0.036 0.079" rot="0.000000 -0.000000 0.000000" scale="1.000 1.000 1.000" support="base"/>
-                              <bone connected="false" end="0.022 0.000 0.000" group="Face" name="mFaceEyeAltRight" pivot="0.098466 -0.036000 0.079000" pos="0.098 -0.036 0.079" rot="0.000000 0.000000 0.000000" scale="1.00 1.00 1.00" support="extended"/>
-                              <bone connected="false" end="0.022 0.000 0.000" group="Face" name="mFaceEyeAltLeft" pivot="0.098461 0.036000 0.079000" pos="0.098 0.036 0.079" rot="0.000000 0.000000 0.000000" scale="1.00 1.00 1.00" support="extended"/>
-                              <bone connected="false" end="0.020 0.000 0.000" group="Face" name="mFaceRoot" pivot="0.025 0.000 0.045" pos="0.025 0.000 0.045" rot="0.000 0.000 0.000" scale="1.00 1.00 1.00" support="extended">
+                              <bone aliases="avatar_mEyeRight" connected="false" end="0.025 0.000 0.000" group="Extra" name="mEyeRight" pivot="0.098466 -0.036000 0.079000" pos="0.098 -0.036 0.079" rot="0.000000 0.000000 -0.000000" scale="1.000 1.000 1.000" support="base"/>
+                              <bone aliases="avatar_mEyeLeft" connected="false" end="0.025 0.000 0.000" group="Extra" name="mEyeLeft" pivot="0.098461 0.036000 0.079000" pos="0.098 0.036 0.079" rot="0.000000 -0.000000 0.000000" scale="1.000 1.000 1.000" support="base"/>
+                              <bone connected="false" end="0.020 0.000 0.000" group="Face" name="mFaceRoot" pivot="0.025000 0.000000 0.045000" pos="0.025 0.000 0.045" rot="0.000000 0.000000 0.000000" scale="1.00 1.00 1.00" support="extended">
+                                 <bone connected="false" end="0.025 0.000 0.000" group="Face" name="mFaceEyeAltRight" pivot="0.073466 -0.036000 0.0339300" pos="0.073 -0.036 0.034" rot="0.000000 0.000000 0.000000" scale="1.00 1.00 1.00" support="extended"/>
+                                 <bone connected="false" end="0.025 0.000 0.000" group="Face" name="mFaceEyeAltLeft" pivot="0.073461 0.036000 0.0339300" pos="0.073 0.036 0.034" rot="0.000000 0.000000 0.000000" scale="1.00 1.00 1.00" support="extended"/>
                                  <bone connected="false" end="0.024 0.004 0.018" group="Face" name="mFaceForeheadLeft" pivot="0.061 0.035 0.083" pos="0.061 0.035 0.083" rot="0.000 0.000 0.000" scale="1.00 1.00 1.00" support="extended"/>
                                  <bone connected="false" end="0.024 -0.004 0.018" group="Face" name="mFaceForeheadRight" pivot="0.061 -0.035 0.083" pos="0.061 -0.035 0.083" rot="0.000 0.000 0.000" scale="1.00 1.00 1.00" support="extended"/>
                                  <bone connected="false" end="0.023 0.013 0.000" group="Eyes" name="mFaceEyebrowOuterLeft" pivot="0.064 0.051 0.048" pos="0.064 0.051 0.048" rot="0.000 0.000 0.000" scale="1.00 1.00 1.00" support="extended"/>