diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 9948f9974a3289b99e0a03695a17e6563c3219f9..60fc2d349d464dfb240f0979f564ee07db0d7fd8 100755
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -9983,7 +9983,7 @@
   <key>MeshUseHttpRetryAfter</key>
   <map>
     <key>Comment</key>
-    <string>If TRUE, use Retry-After response headers when rescheduling a mesh request that fails with an HTTP 503 status.</string>
+    <string>If TRUE, use Retry-After response headers when rescheduling a mesh request that fails with an HTTP 503 status.  Static.</string>
     <key>Persist</key>
     <integer>1</integer>
     <key>Type</key>
@@ -9994,7 +9994,7 @@
   <key>MeshUseGetMesh1</key>
   <map>
     <key>Comment</key>
-    <string>If TRUE, use the legacy GetMesh capability for mesh download requests.</string>
+    <string>If TRUE, use the legacy GetMesh capability for mesh download requests.  Semi-dynamic (read at region crossings).</string>
     <key>Persist</key>
     <integer>1</integer>
     <key>Type</key>
diff --git a/indra/newview/llmeshrepository.cpp b/indra/newview/llmeshrepository.cpp
index 353e7e9a7fa5a393af9615cd1114cb08f36db765..c3d149db9ab8e421d119a0297b4aa294712e3e1d 100755
--- a/indra/newview/llmeshrepository.cpp
+++ b/indra/newview/llmeshrepository.cpp
@@ -282,10 +282,15 @@
 //     dialog.  Get the structured information going into the log into a
 //     tree there.
 //   * Header parse failures come without much explanation.  Elaborate.
-//   * Need a final failure state for requests that are retried and just won't
-//     complete.  We can fail a LOD request, others we don't.
-
-
+//   * Work queue for uploads?  Any need for this or is the current scheme good
+//     enough?
+//   * Various temp buffers used in VFS I/O might be allocated once or even
+//     statically.  Look for some wins here.
+//   * Move data structures holding mesh data used by main thread into main-
+//     thread-only access so that no locking is needed.  May require duplication
+//     of some data so that worker thread has a minimal data set to guide
+//     operations.
+//
 // --------------------------------------------------------------------------
 //                    Development/Debug/QA Tools
 //
@@ -1052,7 +1057,7 @@ std::string LLMeshRepoThread::constructUrl(LLUUID mesh_id)
 	
 	if (gAgent.getRegion())
 	{
-		if (! gMeshRepo.mGetMesh2Capability.empty())
+		if (! gMeshRepo.mGetMesh2Capability.empty() && gMeshRepo.mGetMeshVersion > 1)
 		{
 			http_url = gMeshRepo.mGetMesh2Capability;
 		}
@@ -2181,7 +2186,7 @@ void LLMeshUploadThread::doWholeModelUpload()
 		LLCore::BufferArray * ba = new LLCore::BufferArray;
 		LLCore::BufferArrayStream bas(ba);
 		LLSDSerialize::toXML(body, bas);
-		// LLSDSerialize::toXML(mModelData, bas);		// <- This will generate a convenient upload error
+		// LLSDSerialize::toXML(mModelData, bas);		// <- Enabling this will generate a convenient upload error
 		LLCore::HttpHandle handle = mHttpRequest->requestPost(mHttpPolicyClass,
 															  mHttpPriority,
 															  mWholeModelUploadURL,