diff --git a/indra/newview/llviewerassetupload.cpp b/indra/newview/llviewerassetupload.cpp
index ea3d81c2f6260dfb86fe2ec65e9f77b6549806cd..f0dafec24061c1f6498728e009eb7b553cc7b48c 100644
--- a/indra/newview/llviewerassetupload.cpp
+++ b/indra/newview/llviewerassetupload.cpp
@@ -722,7 +722,9 @@ void LLViewerAssetUpload::AssetInventoryUploadCoproc(LLCoreHttpUtil::HttpCorouti
         httpResults = result[LLCoreHttpUtil::HttpCoroutineAdapter::HTTP_RESULTS];
         status = LLCoreHttpUtil::HttpCoroutineAdapter::getStatusFromLLSD(httpResults);
 
-        if (!status)
+        std::string ulstate = result["state"].asString();
+
+        if ((!status) || (ulstate != "complete"))
         {
             HandleUploadError(status, result, uploadInfo);
             if (uploadInfo->showUploadDialog())
@@ -730,7 +732,7 @@ void LLViewerAssetUpload::AssetInventoryUploadCoproc(LLCoreHttpUtil::HttpCorouti
             return;
         }
 
-        S32 uploadPrice = uploadInfo->getEconomyUploadCost();
+        S32 uploadPrice = result["upload_price"].asInteger();//uploadInfo->getEconomyUploadCost();
 
         if (uploadPrice > 0)
         {