diff --git a/indra/llmessage/llhttpclient.cpp b/indra/llmessage/llhttpclient.cpp
index dd56e18caf8fbe26e60b61d0167cdcc3d20ee12b..964cbd1026de88ba271825934eb835633d5800c1 100644
--- a/indra/llmessage/llhttpclient.cpp
+++ b/indra/llmessage/llhttpclient.cpp
@@ -79,8 +79,10 @@ namespace
 		{
 			if (mResponder.get())
 			{
-				mResponder->completedRaw(mStatus, mReason, channels, buffer);
+				// Allow clients to parse headers before we attempt to parse
+				// the body and provide completed/result/error calls.
 				mResponder->completedHeader(mStatus, mReason, mHeaderOutput);
+				mResponder->completedRaw(mStatus, mReason, channels, buffer);
 			}
 		}
 		virtual void header(const std::string& header, const std::string& value)
diff --git a/indra/newview/llfloaterurlentry.cpp b/indra/newview/llfloaterurlentry.cpp
index 002d417e4c09a847a820a8d1a20b0fec19b9ae1a..0e802e9736413f3624ce4c5600a8d4b658646977 100644
--- a/indra/newview/llfloaterurlentry.cpp
+++ b/indra/newview/llfloaterurlentry.cpp
@@ -70,11 +70,6 @@ class LLMediaTypeResponder : public LLHTTPClient::Responder
 		  completeAny(status, mime_type);
 	  }
 
-	  virtual void error( U32 status, const std::string& reason )
-	  {
-		  completeAny(status, LLMIMETypes::getDefaultMimeType());
-	  }
-
 	  void completeAny(U32 status, const std::string& mime_type)
 	  {
 		  // Set empty type to none/none.  Empty string is reserved for legacy parcels