diff --git a/.hgtags b/.hgtags
index 0ca253984cbf8ca66f9815c9f6751c3a9e02ef96..d7c139d38443d27f62a6a52683f53264c4e0cd62 100644
--- a/.hgtags
+++ b/.hgtags
@@ -414,3 +414,7 @@ a676b4d6c037b39fe5b8e42cf8839a9303936089 DRTVWR-289
 28fa8b944a0c1869636ab00cc400f5aa71f6fa3c DRTVWR-290
 7f09bbc28c297f14b67961be7b6575445fa160e8 DRTVWR-291
 b23419a2748483c98f3b84b630468a21c88feba5 DRTVWR-292
+1567de5700c273b583dac41b64275c223287306e 3.4.5-beta4
+1cce8447f8f574673e3f47d6fe584262e6964fe2 DRTVWR-296
+0a5d409161ef2a89b28c9a741051dd2dedc707d6 DRTVWR-297
+852b69ef0b5fe6b13b69cc2217282cc64de6afab 3.4.5-beta5
diff --git a/doc/contributions.txt b/doc/contributions.txt
index 10d6818bd38a3ca23a8c6135ba4b0281272e65d6..e86ef11a72bd58e85621a2482f45d812f8afe0df 100644
--- a/doc/contributions.txt
+++ b/doc/contributions.txt
@@ -1251,6 +1251,7 @@ Whimsy Winx
 Whirly Fizzle
 	STORM-1895
 	MAINT-873
+	STORM-1930
 Whoops Babii
 	VWR-631
 	VWR-1640
diff --git a/indra/newview/llmeshrepository.cpp b/indra/newview/llmeshrepository.cpp
index 09003e3e536885479b0f10dd1a4f4757857925f4..1223615079772e274ff703f6ea17e85964ca2c5f 100755
--- a/indra/newview/llmeshrepository.cpp
+++ b/indra/newview/llmeshrepository.cpp
@@ -215,17 +215,19 @@ class LLMeshHeaderResponder : public LLCurl::Responder
 
 	~LLMeshHeaderResponder()
 	{
-		if (!mProcessed && !LLApp::isQuitting())
-		{ //something went wrong, retry
-			llwarns << "Timeout or service unavailable, retrying." << llendl;
-			LLMeshRepository::sHTTPRetryCount++;
-			LLMeshRepoThread::HeaderRequest req(mMeshParams);
-			LLMutexLock lock(gMeshRepo.mThread->mMutex);
-			gMeshRepo.mThread->mHeaderReqQ.push(req);
+		if (!LLApp::isQuitting())
+		{
+			if (!mProcessed)
+			{ //something went wrong, retry
+				llwarns << "Timeout or service unavailable, retrying." << llendl;
+				LLMeshRepository::sHTTPRetryCount++;
+				LLMeshRepoThread::HeaderRequest req(mMeshParams);
+				LLMutexLock lock(gMeshRepo.mThread->mMutex);
+				gMeshRepo.mThread->mHeaderReqQ.push(req);
+			}
 
+			LLMeshRepoThread::decActiveHeaderRequests();
 		}
-
-		LLMeshRepoThread::decActiveHeaderRequests();
 	}
 
 	virtual void completedRaw(U32 status, const std::string& reason,
@@ -252,13 +254,16 @@ class LLMeshLODResponder : public LLCurl::Responder
 
 	~LLMeshLODResponder()
 	{
-		if (!mProcessed && !LLApp::isQuitting())
+		if (!LLApp::isQuitting())
 		{
-			llwarns << "Killed without being processed, retrying." << llendl;
-			LLMeshRepository::sHTTPRetryCount++;
-			gMeshRepo.mThread->lockAndLoadMeshLOD(mMeshParams, mLOD);
+			if (!mProcessed)
+			{
+				llwarns << "Killed without being processed, retrying." << llendl;
+				LLMeshRepository::sHTTPRetryCount++;
+				gMeshRepo.mThread->lockAndLoadMeshLOD(mMeshParams, mLOD);
+			}
+			LLMeshRepoThread::decActiveLODRequests();
 		}
-		LLMeshRepoThread::decActiveLODRequests();
 	}
 
 	virtual void completedRaw(U32 status, const std::string& reason,
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
index 7eb0fac2beb11dfe9bfaa6c976902821047c5983..cd243d40a4e653ddd8aa3fe035a755abb6f9ad56 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
@@ -147,11 +147,24 @@
      height="12"
      layout="topleft"
      left_delta="87"
-     name="ShadersPrefText3"
+     name="ShadersPrefText2"
      top_delta="0"
      width="80">
         Mid
     </text>
+    <text
+     type="string"
+     length="1"
+     follows="left|top"
+     halign="center"
+     height="12"
+     layout="topleft"
+     left_delta="87"
+     name="ShadersPrefText3"
+     top_delta="0"
+     width="80">
+        High
+    </text>
     <text
      type="string"
      length="1"