diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml
index 727a9e7fc4ec59d1fe103c0311b0efc31f52ef37..08102332d066fab2b37294c898522e969d6b4167 100644
--- a/indra/newview/character/avatar_lad.xml
+++ b/indra/newview/character/avatar_lad.xml
@@ -3796,18 +3796,13 @@
 
     <param
      id="1092"
-     group="0"
-     name="Big_Belly_Torso_Gravity"
-     label="Big Belly Torso Gravity"
+     group="1"
+     name="Belly_Torso_Physics_UpDown_Driven"
      wearable="shape"
      edit_group="driven"
-     label_min="Up"
-     label_max="Down"
      value_default="0"
      value_min="-2"
-     value_max="2"
-     camera_elevation=".3"
-     camera_distance=".8">
+     value_max="2">
       <param_morph />
     </param>
 
@@ -4065,16 +4060,11 @@
      group="0"
      sex="female"
      name="Breast_Gravity"
-     label="Breast Buoyancy"
      wearable="shape"
      edit_group="driven"
-     label_min="Less Gravity"
-     label_max="More Gravity"
      value_default="0"
      value_min="-1.5"
-     value_max="2"
-     camera_elevation=".3"
-     camera_distance=".8">
+     value_max="2">
       <param_morph />
     </param>
 
@@ -4083,16 +4073,11 @@
      group="0"
      sex="female"
      name="Breast_Female_Cleavage"
-     label="Breast Cleavage"
      wearable="shape"
      edit_group="driven"
-     label_min="Separate"
-     label_max="Join"
      value_default="0"
      value_min="-.3"
-     value_max="1.3"
-     camera_elevation=".3"
-     camera_distance=".8">
+     value_max="1.3">
       <param_morph />
     </param>
 
@@ -4408,7 +4393,7 @@
     <param
      id="1093"
      group="1"
-     name="Big_Belly_Legs_Gravity"
+     name="Belly_Legs_Physics_UpDown_Driven"
      wearable="shape"
      edit_group="driven"
      value_min="-2"
@@ -4458,8 +4443,7 @@
     <param
      id="1089"
      group="0"
-     name="Butt_Gravity"
-     label="Butt Gravity"
+     name="Butt_Physics_UpDown_Driven"
      wearable="shape"
      edit_group="driven"
      label_min="Separate"
@@ -5188,11 +5172,10 @@
     <param
      id="1094"
      group="1"
-     name="skirt_belly_gravity"
+     name="Belly_Skirt_Physics_UpDown_Driven"
      wearable="skirt"
      edit_group="driven"
      cross_wearable="true"
-     label="big belly skirt gravity"
      value_min="0"
      value_max="1">
       <param_morph />
@@ -9371,8 +9354,8 @@ render_pass="bump">
      id="507"
      group="0"
      sex="female"
-     name="Breast_Gravity_Driver"
-     label="Breast Buoyancy"
+     name="Breast_Physics_UpDown_Controller"
+     label="Breast Physics UpDown Controller"
      wearable="shape"
      edit_group="shape_torso"
      edit_group_order="7"
@@ -9393,8 +9376,8 @@ render_pass="bump">
      id="684"
      group="0"
      sex="female"
-     name="Breast_Female_Cleavage_Driver"
-     label="Breast Cleavage"
+     name="Breast_Physics_Side_Controller"
+     label="Breast Physics Side Controller"
      wearable="shape"
      edit_group="shape_torso"
      edit_group_order="8"
@@ -9414,8 +9397,8 @@ render_pass="bump">
    <param
      id="1090"
      group="0"
-     name="Butt_Gravity_Driver"
-     label="Butt Gravity"
+     name="Butt_Physics_UpDown_Controller"
+     label="Butt Physics UpDown Controller"
      wearable="shape"
      edit_group="shape_legs"
      edit_group_order="7"
@@ -10161,11 +10144,11 @@ render_pass="bump">
      wearable="shape"
      edit_group="shape_torso"
      edit_group_order="14"
-     name="Belly_Gravity"
-     label="Belly Gravity"
-     label_min="Small"
-     label_max="Big"
-     value_min="0"
+     name="Belly_Physics_UpDown_Controller"
+     label="Belly Physics UpDown Controller"
+     label_min="Down"
+     label_max="Up"
+     value_min="-1"
      value_max="1"
      value_default="0"
      camera_distance="1.4"
@@ -10174,15 +10157,150 @@ render_pass="bump">
       <param_driver>
         <driven
          id="1092" />
-
         <driven
          id="1093" />
-
         <driven
          id="1094" />
       </param_driver>
     </param>
 
+    <param
+     id="1095"
+     group="0"
+     name="Belly_Physics_UpDown_Spring"
+     label="Belly Physics UpDown Spring"
+     wearable="physics"
+     edit_group="physics"
+     label_min="Less"
+     label_max="More"
+     value_default=".1"
+     value_min="0"
+     value_max="1"
+     camera_elevation=".3"
+     camera_distance=".8">
+	 <param_driver />
+    </param>
+
+    <param
+     id="1096"
+     group="0"
+     name="Belly_Physics_UpDown_Gain"
+     label="Belly Physics UpDown Gain"
+     wearable="physics"
+     edit_group="physics"
+     label_min="Less"
+     label_max="More"
+     value_default="10"
+     value_min="1"
+     value_max="100"
+     camera_elevation=".3"
+     camera_distance=".8">
+	 <param_driver />
+    </param>
+
+    <param
+     id="1097"
+     group="0"
+     name="Belly_Physics_UpDown_Damping"
+     label="Belly Physics UpDown Damping"
+     wearable="physics"
+     edit_group="physics"
+     label_min="Less"
+     label_max="More"
+     value_default=".05"
+     value_min="0"
+     value_max=".1"
+     camera_elevation=".3"
+     camera_distance=".8">
+	 <param_driver />
+    </param>
+
+    <param
+     id="1098"
+     group="0"
+     name="Belly_Physics_UpDown_Max_Velocity"
+     label="Belly Physics UpDown Max Speed"
+     wearable="physics"
+     edit_group="physics"
+     label_min="Less"
+     label_max="More"
+     value_default=".1"
+     value_min="0"
+     value_max=".1"
+     camera_elevation=".3"
+     camera_distance=".8">
+	 <param_driver />
+    </param>
+
+    <param
+     id="1100"
+     group="0"
+     name="Butt_Physics_UpDown_Spring"
+     label="Butt Physics UpDown Spring"
+     wearable="physics"
+     edit_group="physics"
+     label_min="Less"
+     label_max="More"
+     value_default=".1"
+     value_min="0"
+     value_max="1"
+     camera_elevation=".3"
+     camera_distance=".8">
+	 <param_driver />
+    </param>
+
+    <param
+     id="1101"
+     group="0"
+     name="Butt_Physics_UpDown_Gain"
+     label="Butt Physics UpDown Gain"
+     wearable="physics"
+     edit_group="physics"
+     label_min="Less"
+     label_max="More"
+     value_default="10"
+     value_min="1"
+     value_max="100"
+     camera_elevation=".3"
+     camera_distance=".8">
+	 <param_driver />
+    </param>
+
+    <param
+     id="1102"
+     group="0"
+     name="Butt_Physics_UpDown_Damping"
+     label="Butt Physics UpDown Damping"
+     wearable="physics"
+     edit_group="physics"
+     label_min="Less"
+     label_max="More"
+     value_default=".05"
+     value_min="0"
+     value_max=".1"
+     camera_elevation=".3"
+     camera_distance=".8">
+	 <param_driver />
+    </param>
+
+    <param
+     id="1103"
+     group="0"
+     name="Butt_Physics_UpDown_Max_Velocity"
+     label="Butt Physics UpDown Max Speed"
+     wearable="physics"
+     edit_group="physics"
+     label_min="Less"
+     label_max="More"
+     value_default=".1"
+     value_min="0"
+     value_max=".1"
+     camera_elevation=".3"
+     camera_distance=".8">
+	 <param_driver />
+    </param>
+
+
     <param
      id="637"
      group="0"
diff --git a/indra/newview/llphysicsmotion.cpp b/indra/newview/llphysicsmotion.cpp
index c9a75784e164a4624b9d4a43792baec1e88e10a4..094faf4d9774a773a60a413144538e501ec58d3d 100644
--- a/indra/newview/llphysicsmotion.cpp
+++ b/indra/newview/llphysicsmotion.cpp
@@ -174,13 +174,13 @@ class LLPhysicsMotion
 default_controller_map_t initDefaultController()
 {
 	default_controller_map_t controller;
-	controller["Mass"] = 2.0f;
+	controller["Mass"] = 0.2f;
 	controller["Smoothing"] = 2.0f;
 	controller["Gravity"] = 0.0f;
-	controller["Damping"] = .5f;
-	controller["Drag"] = 0.1f;
-	controller["MaxSpeed"] = 10.0f;
-	controller["Spring"] = 1.0f;
+	controller["Damping"] = .05f;
+	controller["Drag"] = 0.15f;
+	controller["MaxSpeed"] = 0.1f;
+	controller["Spring"] = 0.1f;
 	controller["Gain"] = 10.0f;
 	return controller;
 }
@@ -247,7 +247,7 @@ LLMotion::LLMotionInitStatus LLPhysicsMotionController::onInitialize(LLCharacter
 	controllers_cleavage["Spring"] = "Breast_Physics_Side_Spring";
 	controllers_cleavage["Gain"] = "Breast_Physics_Side_Gain";
 
-	LLPhysicsMotion *cleavage_motion = new LLPhysicsMotion("Breast_Female_Cleavage_Driver",
+	LLPhysicsMotion *cleavage_motion = new LLPhysicsMotion("Breast_Physics_Side_Controller",
 							       "",
 							       "mChest",
 							       character,
@@ -267,52 +267,53 @@ LLMotion::LLMotionInitStatus LLPhysicsMotionController::onInitialize(LLCharacter
 	controllers_bounce["Spring"] = "Breast_Physics_UpDown_Spring";
 	controllers_bounce["Gain"] = "Breast_Physics_UpDown_Gain";
 
-	LLPhysicsMotion *bounce_motion = new LLPhysicsMotion("Breast_Gravity_Driver",
+	LLPhysicsMotion *bounce_motion = new LLPhysicsMotion("Breast_Physics_UpDown_Controller",
 							     "",
 							     "mChest",
 							     character,
 							     LLVector3(0,0,1),
 							     controllers_bounce);
 	if (!bounce_motion->initialize())
+	{
+		llassert_always(FALSE);
 		return STATUS_FAILURE;
+	}
 	addMotion(bounce_motion);
 
 	controller_map_t controllers_butt_bounce;
-	controllers_butt_bounce["Mass"] = "Breast_Physics_Mass";
-	controllers_butt_bounce["Smoothing"] = "Breast_Physics_Smoothing";
-	controllers_butt_bounce["Gravity"] = "Breast_Physics_Gravity";
-	controllers_butt_bounce["Damping"] = "Breast_Physics_UpDown_Damping";
-	controllers_butt_bounce["Drag"] = "Breast_Physics_UpDown_Drag";
-	controllers_butt_bounce["MaxSpeed"] = "Breast_Physics_UpDown_Max_Velocity";
-	controllers_butt_bounce["Spring"] = "Breast_Physics_UpDown_Spring";
-	controllers_butt_bounce["Gain"] = "Breast_Physics_UpDown_Gain";
-	LLPhysicsMotion *butt_bounce_motion = new LLPhysicsMotion("Butt_Gravity_Driver",
+	controllers_butt_bounce["Damping"] = "Butt_Physics_Updown_Damping";
+	controllers_butt_bounce["MaxSpeed"] = "Butt_Physics_Updown_Max_Velocity";
+	controllers_butt_bounce["Spring"] = "Butt_Physics_Updown_Spring";
+	controllers_butt_bounce["Gain"] = "Butt_Physics_Updown_Gain";
+	LLPhysicsMotion *butt_bounce_motion = new LLPhysicsMotion("Butt_Physics_UpDown_Controller",
 								  "",
 								  "mPelvis",
 								  character,
 								  LLVector3(0,0,-1),
 								  controllers_butt_bounce);
 	if (!butt_bounce_motion->initialize())
+	{
+		llassert_always(FALSE);
 		return STATUS_FAILURE;
+	}
 	addMotion(butt_bounce_motion);
 
 	controller_map_t controllers_belly_bounce;
-	controllers_belly_bounce["Mass"] = "Breast_Physics_Mass";
-	controllers_belly_bounce["Smoothing"] = "Breast_Physics_Smoothing";
-	controllers_belly_bounce["Gravity"] = "Breast_Physics_Gravity";
-	controllers_belly_bounce["Damping"] = "Breast_Physics_UpDown_Damping";
-	controllers_belly_bounce["Drag"] = "Breast_Physics_UpDown_Drag";
-	controllers_belly_bounce["MaxSpeed"] = "Breast_Physics_UpDown_Max_Velocity";
-	controllers_belly_bounce["Spring"] = "Breast_Physics_UpDown_Spring";
-	controllers_belly_bounce["Gain"] = "Breast_Physics_UpDown_Gain";
-	LLPhysicsMotion *belly_bounce_motion = new LLPhysicsMotion("Belly_Gravity",
+	controllers_belly_bounce["Damping"] = "Belly_Physics_Updown_Damping";
+	controllers_belly_bounce["MaxSpeed"] = "Belly_Physics_Updown_Max_Velocity";
+	controllers_belly_bounce["Spring"] = "Belly_Physics_Updown_Spring";
+	controllers_belly_bounce["Gain"] = "Belly_Physics_Updown_Gain";
+	LLPhysicsMotion *belly_bounce_motion = new LLPhysicsMotion("Belly_Physics_UpDown_Controller",
 								   "",
 								   "mChest",
 								   character,
 								   LLVector3(0,0,-1),
 								   controllers_belly_bounce);
 	if (!belly_bounce_motion->initialize())
+	{
+		llassert_always(FALSE);
 		return STATUS_FAILURE;
+	}
 	addMotion(belly_bounce_motion);
 
 	return STATUS_SUCCESS;
@@ -372,8 +373,6 @@ BOOL LLPhysicsMotionController::onUpdate(F32 time, U8* joint_mask)
 		return TRUE;
 	}
 	
-	if (mCharacter->getSex() != SEX_FEMALE) return TRUE;
-	
 	BOOL update_visuals = FALSE;
 	for (motion_vec_t::iterator iter = mMotions.begin();
 	     iter != mMotions.end();
diff --git a/indra/newview/llpolymesh.cpp b/indra/newview/llpolymesh.cpp
index 4118401a4c570a5451e68a9a19c27613fbf716a7..b145b65bac0c8319c580e0659fc0956eee8389e8 100644
--- a/indra/newview/llpolymesh.cpp
+++ b/indra/newview/llpolymesh.cpp
@@ -606,7 +606,7 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
 				if (!strcmp(morphName, "Big_Belly_Torso"))
 				{
 					LLPolyMorphData* cloned_morph_data = new LLPolyMorphData(*morph_data);
-					cloned_morph_data->mName = std::string("Big_Belly_Torso_Gravity");
+					cloned_morph_data->mName = std::string("Belly_Torso_Physics_UpDown_Driven");
 					for (U32 v=0; v < morph_data->mNumIndices; v++)
 					{
 						cloned_morph_data->mCoords[v][0] = 0;
@@ -621,7 +621,7 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
 				if (!strcmp(morphName, "Big_Belly_Legs"))
 				{
 					LLPolyMorphData* cloned_morph_data = new LLPolyMorphData(*morph_data);
-					cloned_morph_data->mName = std::string("Big_Belly_Legs_Gravity");
+					cloned_morph_data->mName = std::string("Belly_Legs_Physics_UpDown_Driven");
 					for (U32 v=0; v < cloned_morph_data->mNumIndices; v++)
 					{
 						cloned_morph_data->mCoords[v][0] = 0;
@@ -636,7 +636,7 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
 				if (!strcmp(morphName, "skirt_belly"))
 				{
 					LLPolyMorphData* cloned_morph_data = new LLPolyMorphData(*morph_data);
-					cloned_morph_data->mName = std::string("skirt_belly_gravity");
+					cloned_morph_data->mName = std::string("Belly_Skirt_Physics_UpDown_Driven");
 					for (U32 v=0; v < cloned_morph_data->mNumIndices; v++)
 					{
 						cloned_morph_data->mCoords[v][0] = 0;
@@ -651,7 +651,7 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
 				if (!strcmp(morphName, "Small_Butt"))
 				{
 					LLPolyMorphData* cloned_morph_data = new LLPolyMorphData(*morph_data);
-					cloned_morph_data->mName = std::string("Butt_Gravity");
+					cloned_morph_data->mName = std::string("Butt_Physics_UpDown_Driven");
 					for (U32 v=0; v < cloned_morph_data->mNumIndices; v++)
 					{
 						cloned_morph_data->mCoords[v][0] = 0;
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index 3c7d7d1777aa109fb1fa7ac25d24ef9704149fe6..e5d52b03e505332c38eadd0b3f8c79a5b5c12a03 100644
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -2500,8 +2500,8 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
 <string name="Body Thin">Body Thin</string>
 
 <string name="Bow Legged">Bow Legged</string>
-<string name="Breast Buoyancy">Breast Buoyancy</string>
-<string name="Breast Cleavage">Breast Cleavage</string>
+<string name="Breast Physics Updown Controller">Breast Buoyancy</string>
+<string name="Breast Physics Side Controller">Breast Cleavage</string>
 <string name="Breast Size">Breast Size</string>
 <string name="Bridge Width">Bridge Width</string>
 <string name="Broad">Broad</string>
@@ -2527,6 +2527,18 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
 <string name="Breast Physics UpDown Drag">Breast UpDown Drag</string>
 <string name="Breast Physics UpDown Max Speed">Breast UpDown Max Speed</string>
 
+<string name="Belly Physics UpDown Controller">Belly Updown Bounce</string>
+<string name="Belly Physics UpDown Spring">Belly Updown Spring</string>
+<string name="Belly Physics UpDown Gain">Belly Updown  Gain</string>
+<string name="Belly Physics UpDown Damping">Belly Updown Damping</string>
+<string name="Belly Physics UpDown Max Speed">Belly Updown Max Speed</string>
+
+<string name="Butt Physics UpDown Controller">Butt UpDown Bounce</string>
+<string name="Butt Physics UpDown Spring">Butt UpDown Spring</string>
+<string name="Butt Physics UpDown Gain">Butt UpDown Gain</string>
+<string name="Butt Physics UpDown Damping">Butt UpDown Damping</string>
+<string name="Butt Physics UpDown Max Speed">Butt UpDown Max Speed</string>
+
 <string name="Bushy Eyebrows">Bushy Eyebrows</string>
 <string name="Bushy Hair">Bushy Hair</string>
 <string name="Butt Size">Butt Size</string>