diff --git a/.hgtags b/.hgtags
index 9feb4e8b7227f1b786c8e2b82f1f19f641ce41c0..8dbcaa7399b764399065c76bbaecb7b9bbad4d59 100755
--- a/.hgtags
+++ b/.hgtags
@@ -370,3 +370,4 @@ f4481df42f9a4a92bf475a80f0c51d1a4bbdfd59 DRTVWR-246
 f72b50ef168c159d6e79e97aa2bcafaf8577ab99 DRTVWR-230
 b418be80903520c492e1173f3afbc4021cad5d07 DRTVWR-255
 965b9a35e260c0f53be1a25f0db7abc8a67eaf47 DRTVWR-252
+bb10adc4f76cf0067fca7075146f00cdc0740e9d DRTVWR-251
diff --git a/indra/llcorehttp/_httpinternal.h b/indra/llcorehttp/_httpinternal.h
index 465e2036b3217c04db379d62e3a4e58fc685b2c0..14f744a9f1e078b6fd8fb4567fe09affe22490b2 100644
--- a/indra/llcorehttp/_httpinternal.h
+++ b/indra/llcorehttp/_httpinternal.h
@@ -111,7 +111,15 @@ const int HTTP_TRACE_MIN = HTTP_TRACE_OFF;
 const int HTTP_TRACE_MAX = HTTP_TRACE_CURL_BODIES;
 
 // Request retry limits
-const int HTTP_RETRY_COUNT_DEFAULT = 5;
+//
+// At a minimum, retries need to extend past any throttling
+// window we're expecting from central services.  In the case
+// of Linden services running through the caps routers, there's
+// a five-second or so window for throttling with some spillover.
+// We want to span a few windows to allow transport to slow
+// after onset of the throttles and then recover without a final
+// failure.  Other systems may need other constants.
+const int HTTP_RETRY_COUNT_DEFAULT = 8;
 const int HTTP_RETRY_COUNT_MIN = 0;
 const int HTTP_RETRY_COUNT_MAX = 100;
 
diff --git a/indra/llcorehttp/examples/http_texture_load.cpp b/indra/llcorehttp/examples/http_texture_load.cpp
index 998dc9240b19ee34eed2ff53da0d516fedb306e8..40ad4f047dfcc0141cadaa25eb638bd6f278f8af 100644
--- a/indra/llcorehttp/examples/http_texture_load.cpp
+++ b/indra/llcorehttp/examples/http_texture_load.cpp
@@ -153,6 +153,7 @@ public:
 //
 int main(int argc, char** argv)
 {
+	LLCore::HttpStatus status;
 	bool do_random(false);
 	bool do_verbose(false);
 	
@@ -215,6 +216,9 @@ int main(int argc, char** argv)
 	// Initialization
 	init_curl();
 	LLCore::HttpRequest::createService();
+	LLCore::HttpRequest::setPolicyClassOption(LLCore::HttpRequest::DEFAULT_POLICY_ID,
+											  LLCore::HttpRequest::CP_CONNECTION_LIMIT,
+											  concurrency_limit);
 	LLCore::HttpRequest::startThread();
 	
 	// Get service point
@@ -228,7 +232,7 @@ int main(int argc, char** argv)
 	ws.loadTextureUuids(uuids);
 	ws.mRandomRange = do_random;
 	ws.mVerbose = do_verbose;
-	ws.mMaxConcurrency = concurrency_limit;
+	ws.mMaxConcurrency = 100;
 	
 	if (! ws.mTextures.size())
 	{