diff --git a/indra/llcommon/llsdutil.cpp b/indra/llcommon/llsdutil.cpp
index dc36e88d768c903402c27764db8d7b5d683ffea4..330936444fb18d19d38aa8f03f4e2c57221b4380 100644
--- a/indra/llcommon/llsdutil.cpp
+++ b/indra/llcommon/llsdutil.cpp
@@ -989,8 +989,8 @@ LLSD llsd_clone(LLSD value, LLSD filter)
 
     case LLSD::TypeBinary:
     {
-        LLSD::Binary bin(value.asBinary().begin(), value.asBinary().end());
-        clone = LLSD::Binary(std::move(bin));
+        const auto& bin = value.asBinary();
+        clone = LLSD::Binary(bin.begin(), bin.end());
         break;
     }
     default:
diff --git a/indra/newview/llmaterialmgr.cpp b/indra/newview/llmaterialmgr.cpp
index 06767f3b1ba7389c260805cbcebd336c010ad092..90cf7f1a390d470015d75ae64bfd971ba0ed8517 100644
--- a/indra/newview/llmaterialmgr.cpp
+++ b/indra/newview/llmaterialmgr.cpp
@@ -691,12 +691,8 @@ void LLMaterialMgr::processGetQueue()
 			return;
 		}
 
-		LLSD::Binary materialBinary;
-		materialBinary.resize(materialSize);
-		memcpy(materialBinary.data(), materialString.data(), materialSize);
-
 		LLSD postData = LLSD::emptyMap();
-		postData[MATERIALS_CAP_ZIP_FIELD] = materialBinary;
+		postData[MATERIALS_CAP_ZIP_FIELD] = LLSD::Binary(materialString.begin(), materialString.end());
 
         LLCore::HttpHandler::ptr_t handler = std::make_shared<LLMaterialHttpHandler>("POST",
 				boost::bind(&LLMaterialMgr::onGetResponse, this, _1, _2, region_id)
@@ -979,12 +975,8 @@ void LLMaterialMgr::processPutQueue()
 
 		if (materialSize > 0)
 		{
-			LLSD::Binary materialBinary;
-			materialBinary.resize(materialSize);
-			memcpy(materialBinary.data(), materialString.data(), materialSize);
-
 			LLSD putData = LLSD::emptyMap();
-			putData[MATERIALS_CAP_ZIP_FIELD] = materialBinary;
+			putData[MATERIALS_CAP_ZIP_FIELD] = LLSD::Binary(materialString.begin(), materialString.end());
 
 			LL_DEBUGS("Materials") << "put for " << itRequest->second.size() << " faces to region " << itRequest->first->getName() << LL_ENDL;