diff --git a/indra/llcharacter/lljoint.cpp b/indra/llcharacter/lljoint.cpp
index 6f22a7c6b72b9a6280211bc9c9ded18fdaf6c79e..40695bfa24549a197232f3f93142f11970e7d98c 100755
--- a/indra/llcharacter/lljoint.cpp
+++ b/indra/llcharacter/lljoint.cpp
@@ -290,7 +290,7 @@ const LLVector3& LLJoint::getPosition()
 
 bool do_debug_joint(const std::string& name)
 {
-	return true;
+	return false;
 }
 
 //--------------------------------------------------------------------
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 138bdde9e9ad042624303cda18b18d4f52de775e..94d3c8a59fca5661fef53a4f3ffd6b3cb20a6526 100755
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -654,21 +654,6 @@
       <key>Value</key>
       <integer>2</integer>
     </map>
-    <key>AvatarPosFinalOffset</key>
-    <map>
-      <key>Comment</key>
-      <string>After-everything-else fixup for avatar position.</string>
-      <key>Persist</key>
-      <integer>1</integer>
-      <key>Type</key>
-      <string>Vector3</string>
-      <key>Value</key>
-      <array>
-        <real>0.0</real>
-        <real>0.0</real>
-        <real>0.0</real>
-      </array>
-    </map>
     <key>AvatarPickerURL</key>
     <map>
       <key>Comment</key>
diff --git a/indra/newview/app_settings/settings_per_account.xml b/indra/newview/app_settings/settings_per_account.xml
index fc6f1f6395f7f0cbbdec0d4bf70c2c02967acf22..7975fe9e3a7fb869988a93d5505761e83928b4af 100755
--- a/indra/newview/app_settings/settings_per_account.xml
+++ b/indra/newview/app_settings/settings_per_account.xml
@@ -1,5 +1,20 @@
 <llsd>
     <map>
+    <key>AvatarPosFinalOffset</key>
+    <map>
+      <key>Comment</key>
+      <string>After-everything-else fixup for avatar position.</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Vector3</string>
+      <key>Value</key>
+      <array>
+        <real>0.0</real>
+        <real>0.0</real>
+        <real>0.0</real>
+      </array>
+    </map>
     <key>DoNotDisturbResponseChanged</key>
         <map>
         <key>Comment</key>
diff --git a/indra/newview/llfloaterhoverheight.cpp b/indra/newview/llfloaterhoverheight.cpp
index bcdab6b3a01f335a10cd43472bdf0be60edbdcae..a858b891a93657cf9264cefe3c08d82ec452f767 100755
--- a/indra/newview/llfloaterhoverheight.cpp
+++ b/indra/newview/llfloaterhoverheight.cpp
@@ -42,7 +42,7 @@ LLFloaterHoverHeight::LLFloaterHoverHeight(const LLSD& key) : LLFloater(key)
 
 void LLFloaterHoverHeight::syncFromPreferenceSetting(void *user_data)
 {
-	LLVector3 offset = gSavedSettings.getVector3("AvatarPosFinalOffset");
+	LLVector3 offset = gSavedPerAccountSettings.getVector3("AvatarPosFinalOffset");
 	F32 value = offset[2];
 
 	LLFloaterHoverHeight *self = static_cast<LLFloaterHoverHeight*>(user_data);
@@ -64,7 +64,14 @@ BOOL LLFloaterHoverHeight::postBuild()
 	// Initialize slider from pref setting.
 	syncFromPreferenceSetting(this);
 	// Update slider on future pref changes.
-	gSavedSettings.getControl("AvatarPosFinalOffset")->getCommitSignal()->connect(boost::bind(&syncFromPreferenceSetting, this));
+	if (gSavedPerAccountSettings.getControl("AvatarPosFinalOffset"))
+	{
+		gSavedPerAccountSettings.getControl("AvatarPosFinalOffset")->getCommitSignal()->connect(boost::bind(&syncFromPreferenceSetting, this));
+	}
+	else
+	{
+		LL_WARNS() << "Control not found for AvatarPosFinalOffset" << LL_ENDL;
+	}
 
 	return TRUE;
 }
@@ -85,9 +92,9 @@ void LLFloaterHoverHeight::onFinalCommit()
 {
 	LLSliderCtrl* sldrCtrl = getChild<LLSliderCtrl>("HoverHeightSlider");
 	F32 value = sldrCtrl->getValueF32();
-	LLVector3 offset = gSavedSettings.getVector3("AvatarPosFinalOffset");
+	LLVector3 offset = gSavedPerAccountSettings.getVector3("AvatarPosFinalOffset");
 	offset[2] = value;
-	gSavedSettings.setVector3("AvatarPosFinalOffset",offset);
+	gSavedPerAccountSettings.setVector3("AvatarPosFinalOffset",offset);
 }
 
 
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index da0e72a6eeffe9f4e6f1a6f3f92def63af33b17f..a6d006f13b89cb7cf06cf544a42fb42bef6814b5 100755
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -7457,7 +7457,7 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
 
 	if (isSelf())
 	{
-		LL_INFOS("Avatar") << "hover was set: " << contents.mHoverOffsetWasSet << " value_z " << contents.mHoverOffset[2] << LL_ENDL;
+		LL_INFOS("Avatar") << avString() << "hover was set: " << contents.mHoverOffsetWasSet << " value_z " << contents.mHoverOffset[2] << LL_ENDL;
 	}
 	
 	if (contents.mHoverOffsetWasSet && !isSelf())
@@ -7471,7 +7471,7 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
 	{
 		// If we don't get a value at all, we are presumably in a
 		// region that does not support hover height.
-// FIXME RESTORE AFTER TESTING
+
 		LL_WARNS() << "zeroing hover because not defined in appearance message" << LL_ENDL;
 		mHoverOffset = LLVector3(0.0, 0.0, 0.0);
 	}
diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp
index 3d82a6dab68646b9600183dbd25784d74b390699..6e0c9cb68c8abe508cc0fc5f36f6efd33f710bd2 100755
--- a/indra/newview/llvoavatarself.cpp
+++ b/indra/newview/llvoavatarself.cpp
@@ -239,7 +239,8 @@ void LLVOAvatarSelf::initInstance()
 		return;
 	}
 
-	mHoverOffset = gSavedSettings.getVector3("AvatarPosFinalOffset");
+	mHoverOffset = gSavedPerAccountSettings.getVector3("AvatarPosFinalOffset");
+	LL_INFOS("Avatar") << avString() << " set hover height from debug setting " << mHoverOffset[2] << LL_ENDL;
 
 	//doPeriodically(output_self_av_texture_diagnostics, 30.0);
 	doPeriodically(update_avatar_rez_metrics, 5.0);
@@ -2734,7 +2735,7 @@ void LLVOAvatarSelf::sendHoverHeight() const
 		LLSD update = LLSD::emptyMap();
 		update["hover_height"] = mHoverOffset[2];
 
-		LL_DEBUGS("Avatar") << "sending hover height value " << mHoverOffset[2] << LL_ENDL;
+		LL_DEBUGS("Avatar") << avString() << "sending hover height value " << mHoverOffset[2] << LL_ENDL;
 		LLHTTPClient::post(url, update, new LLHoverHeightResponder);
 	}
 }