diff --git a/indra/newview/app_settings/camera/Front.xml b/indra/newview/app_settings/camera/Front.xml
index e4839d48ece909e82b7ef1452eb8562499be7662..7b5d597fdf69d8f336c9c32cae459906a496a9e0 100644
--- a/indra/newview/app_settings/camera/Front.xml
+++ b/indra/newview/app_settings/camera/Front.xml
@@ -72,7 +72,7 @@
         <key>Type</key>
             <string>F32</string>
         <key>Value</key>
-            <real>0.9</real>
+            <real>0.90322577953338623</real>
         </map>
     <key>EditCameraMovement</key>
         <map>
diff --git a/indra/newview/app_settings/camera/Rear.xml b/indra/newview/app_settings/camera/Rear.xml
index 72e6c5d93ac09fd4f3039067559a56636522f9dd..7aa36c3e59c7fd70f08cc41acf0b9f8d573a82ce 100644
--- a/indra/newview/app_settings/camera/Rear.xml
+++ b/indra/newview/app_settings/camera/Rear.xml
@@ -72,7 +72,7 @@
         <key>Type</key>
             <string>F32</string>
         <key>Value</key>
-            <real>0.9</real>
+            <real>0.90322577953338623</real>
         </map>
     <key>EditCameraMovement</key>
         <map>
diff --git a/indra/newview/app_settings/camera/Side.xml b/indra/newview/app_settings/camera/Side.xml
index eb3b3253c11c887b594ffc66b9627005666d4b0e..8890d9cbce32be40b9d79fb0c05f961895867bb5 100644
--- a/indra/newview/app_settings/camera/Side.xml
+++ b/indra/newview/app_settings/camera/Side.xml
@@ -72,7 +72,7 @@
         <key>Type</key>
             <string>F32</string>
         <key>Value</key>
-            <real>0.9</real>
+            <real>0.90322577953338623</real>
         </map>
     <key>EditCameraMovement</key>
         <map>
diff --git a/indra/newview/llagentcamera.cpp b/indra/newview/llagentcamera.cpp
index d4d4f8e124e1c4f767f44e3fa132c82f5a4c6555..6b1dd4c3c31107eb41bfa73c28f193a87098669d 100644
--- a/indra/newview/llagentcamera.cpp
+++ b/indra/newview/llagentcamera.cpp
@@ -717,7 +717,7 @@ BOOL LLAgentCamera::calcCameraMinDistance(F32 &obj_min_distance)
 	return TRUE;
 }
 
-F32 LLAgentCamera::getCameraZoomFraction()
+F32 LLAgentCamera::getCameraZoomFraction(bool get_third_person)
 {
 	// 0.f -> camera zoomed all the way out
 	// 1.f -> camera zoomed all the way in
@@ -727,7 +727,7 @@ F32 LLAgentCamera::getCameraZoomFraction()
 		// already [0,1]
 		return mHUDTargetZoom;
 	}
-	else if (mFocusOnAvatar && cameraThirdPerson())
+	else if (get_third_person || (mFocusOnAvatar && cameraThirdPerson()))
 	{
 		return clamp_rescale(mCameraZoomFraction, MIN_ZOOM_FRACTION, MAX_ZOOM_FRACTION, 1.f, 0.f);
 	}
diff --git a/indra/newview/llagentcamera.h b/indra/newview/llagentcamera.h
index af65ab431ad098ee0abd0a3dc03d07468b172943..128974666e227e4855fdfd0a50e9ddc6b497aea6 100644
--- a/indra/newview/llagentcamera.h
+++ b/indra/newview/llagentcamera.h
@@ -272,10 +272,10 @@ class LLAgentCamera
 	// Zoom
 	//--------------------------------------------------------------------
 public:
-	void			handleScrollWheel(S32 clicks); 			// Mousewheel driven zoom
-	void			cameraZoomIn(const F32 factor);			// Zoom in by fraction of current distance
-	F32				getCameraZoomFraction();				// Get camera zoom as fraction of minimum and maximum zoom
-	void			setCameraZoomFraction(F32 fraction);	// Set camera zoom as fraction of minimum and maximum zoom
+	void			handleScrollWheel(S32 clicks); 							// Mousewheel driven zoom
+	void			cameraZoomIn(const F32 factor);							// Zoom in by fraction of current distance
+	F32				getCameraZoomFraction(bool get_third_person = false);	// Get camera zoom as fraction of minimum and maximum zoom
+	void			setCameraZoomFraction(F32 fraction);					// Set camera zoom as fraction of minimum and maximum zoom
 	F32				calcCameraFOVZoomFactor();
 	F32				getAgentHUDTargetZoom();
 
diff --git a/indra/newview/llpresetsmanager.cpp b/indra/newview/llpresetsmanager.cpp
index 6b83be2b7076edb725b345dbc10e2c5bd9a0a91b..eaf139b1063f30ed538e2eb2bd7178d3b570d1c3 100644
--- a/indra/newview/llpresetsmanager.cpp
+++ b/indra/newview/llpresetsmanager.cpp
@@ -288,7 +288,7 @@ bool LLPresetsManager::savePreset(const std::string& subdirectory, std::string n
 		getControlNames(name_list);
 		name_list.push_back("PresetCameraActive");
 
-		gSavedSettings.setF32("CameraZoomFraction", gAgentCamera.getCameraZoomFraction());
+		gSavedSettings.setF32("CameraZoomFraction", gAgentCamera.getCameraZoomFraction(true));
 		name_list.push_back("CameraZoomFraction");
 	}
 	else