diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp
index 778c0ee61a8a88c4133a9bd0e7cd91b358070c04..04ec98d514b72a183585b497c70fde4b0c04ce1a 100755
--- a/indra/newview/llviewerregion.cpp
+++ b/indra/newview/llviewerregion.cpp
@@ -232,6 +232,7 @@ class BaseCapabilitiesComplete : public LLHTTPClient::Responder
 		if( mID != regionp->getHttpResponderID() ) // region is no longer referring to this responder
 		{
 			LL_WARNS2("AppInit", "Capabilities") << "Received results for a stale http responder!" << LL_ENDL;
+			regionp->failedSeedCapability();
 			return ;
 		}
 
diff --git a/indra/newview/llworld.cpp b/indra/newview/llworld.cpp
index 7996f8a64005b31f6e1b3f58f93877639b46c7c5..103668d0510ce381d2daf42038b9d4698e9b56f7 100755
--- a/indra/newview/llworld.cpp
+++ b/indra/newview/llworld.cpp
@@ -140,6 +140,7 @@ LLViewerRegion* LLWorld::addRegion(const U64 &region_handle, const LLHost &host)
 {
 	llinfos << "Add region with handle: " << region_handle << " on host " << host << llendl;
 	LLViewerRegion *regionp = getRegionFromHandle(region_handle);
+	std::string seedUrl;
 	if (regionp)
 	{
 		llinfos << "Region exists, removing it " << llendl;
@@ -161,6 +162,9 @@ LLViewerRegion* LLWorld::addRegion(const U64 &region_handle, const LLHost &host)
 			llwarns << "LLWorld::addRegion exists, but isn't alive" << llendl;
 		}
 
+		// Save capabilities seed URL
+		seedUrl = regionp->getCapability("Seed");
+
 		// Kill the old host, and then we can continue on and add the new host.  We have to kill even if the host
 		// matches, because all the agent state for the new camera is completely different.
 		removeRegion(old_host);
@@ -188,6 +192,11 @@ LLViewerRegion* LLWorld::addRegion(const U64 &region_handle, const LLHost &host)
 		llerrs << "Unable to create new region!" << llendl;
 	}
 
+	if ( !seedUrl.empty() )
+	{
+		regionp->setCapability("Seed", seedUrl);
+	}
+
 	mRegionList.push_back(regionp);
 	mActiveRegionList.push_back(regionp);
 	mCulledRegionList.push_back(regionp);