diff --git a/indra/llprimitive/llmaterialid.cpp b/indra/llprimitive/llmaterialid.cpp
index efc951fe8bbc759e14a9efb49801475472634937..6f3b45a5b8e3fc8680d3716a74fd94a5f27a8635 100644
--- a/indra/llprimitive/llmaterialid.cpp
+++ b/indra/llprimitive/llmaterialid.cpp
@@ -95,7 +95,7 @@ std::string LLMaterialID::asString() const
 			materialIDString += "-";
 		}
 		const U32 *value = reinterpret_cast<const U32*>(&get()[i * sizeof(U32)]);
-		absl::StrAppendFormat(&materialIDString, "%08x", *value);
+		materialIDString += llformat("%08x", *value);
 	}
 	return materialIDString;
 }
diff --git a/indra/llprimitive/llprimitive.cpp b/indra/llprimitive/llprimitive.cpp
index 07318144e0c22374d3defa50822468b5b93551bb..e6babece2ec5a75c13caea0c39fb1835f85f882c 100644
--- a/indra/llprimitive/llprimitive.cpp
+++ b/indra/llprimitive/llprimitive.cpp
@@ -623,7 +623,7 @@ std::string LLPrimitive::pCodeToString(const LLPCode pcode)
 		  pcode_string = "tree_new";
 			break;
 		default:
-		  pcode_string = absl::StrFormat( "unknown legacy pcode %d", pcode);
+		  pcode_string = llformat( "unknown legacy pcode %i",(U32)pcode);
 		}
 	}
 	else
@@ -674,7 +674,7 @@ std::string LLPrimitive::pCodeToString(const LLPCode pcode)
 		U8 mask_code = pcode & (~LL_PCODE_BASE_MASK);
 		if (base_code == LL_PCODE_APP)
 		{
-			mask = absl::StrFormat("%x", mask_code);
+			mask = llformat( "%x", mask_code);
 		}
 		else if (mask_code & LL_PCODE_HEMI_MASK)
 		{
@@ -682,16 +682,16 @@ std::string LLPrimitive::pCodeToString(const LLPCode pcode)
 		}
 		else 
 		{
-			mask = absl::StrFormat("%x", mask_code);
+			mask = llformat( "%x", mask_code);
 		}
 
 		if (mask[0])
 		{
-			pcode_string = absl::StrFormat("%s-%s", shape, mask);
+			pcode_string = llformat( "%s-%s", shape.c_str(), mask.c_str());
 		}
 		else
 		{
-			pcode_string = absl::StrFormat("%s", shape);
+			pcode_string = llformat( "%s", shape.c_str());
 		}
 	}
 
@@ -1111,10 +1111,10 @@ S32 LLPrimitive::unpackTEField(U8 *cur_ptr, U8 *buffer_end, U8 *data_ptr, U8 dat
 			if (i & 0x01)
 			{
 				htolememcpy(data_ptr+(j*data_size),cur_ptr,type,data_size);
-#if SHOW_DEBUG
 				LL_DEBUGS("TEFieldDecode") << "Assigning " ;
-				LL_CONT << absl::StreamFormat("%x %x", * (data_ptr + (j * data_size)), * (data_ptr + (j * data_size) + 1)) << " to face " << j << LL_ENDL;
-#endif
+				char foo[64];
+				sprintf(foo,"%x %x",*(data_ptr+(j*data_size)), *(data_ptr+(j*data_size)+1));
+				LL_CONT << foo << " to face " << j << LL_ENDL;
 			}
 			i = i >> 1;
 		}
diff --git a/indra/llprimitive/llvolumemessage.cpp b/indra/llprimitive/llvolumemessage.cpp
index 0fa3f751f64485209132ca577480521720417dd9..8d47a7147f87e21a92ea57390003bc03c41ae7ea 100644
--- a/indra/llprimitive/llvolumemessage.cpp
+++ b/indra/llprimitive/llvolumemessage.cpp
@@ -482,7 +482,7 @@ bool LLVolumeMessage::constrainVolumeParams(LLVolumeParams& params)
 	{
 		LL_WARNS() << "LLVolumeMessage::constrainVolumeParams() - "
 				<< "forced to constrain incoming volume params: "
-				<< absl::StreamFormat("0x%04x",bad) << LL_ENDL;
+				<< llformat("0x%04x",bad) << LL_ENDL;
 	}
 	return bad ? false : true;
 }
diff --git a/indra/llrender/llgl.cpp b/indra/llrender/llgl.cpp
index 5f5c587e0af824306f7e2d4a7392e54a2adee538..92efb925f48e028dc2cf013228670552c6f08e24 100644
--- a/indra/llrender/llgl.cpp
+++ b/indra/llrender/llgl.cpp
@@ -1164,7 +1164,7 @@ void LLGLState::dumpStates()
 	LL_INFOS("RenderState") << "GL States:" << LL_ENDL;
 	for (const auto& state_pair : sStateMap)
 	{
-		LL_INFOS("RenderState") << absl::StreamFormat(" 0x%04x : %s",(S32)state_pair.first, state_pair.second?"TRUE":"FALSE") << LL_ENDL;
+		LL_INFOS("RenderState") << llformat(" 0x%04x : %s",(S32)state_pair.first, state_pair.second?"TRUE":"FALSE") << LL_ENDL;
 	}
 }
 
@@ -1212,12 +1212,12 @@ void LLGLState::checkStates(const std::string& msg)
 			dumpStates();
 			if (gDebugSession)
 			{
-				gFailLog << absl::StreamFormat("LLGLState error. State: 0x%04x",state) << std::endl;
+				gFailLog << llformat("LLGLState error. State: 0x%04x",state) << std::endl;
 				error = TRUE;
 			}
 			else
 			{
-				LL_GL_ERRS << absl::StreamFormat("LLGLState error. State: 0x%04x",state) << LL_ENDL;
+				LL_GL_ERRS << llformat("LLGLState error. State: 0x%04x",state) << LL_ENDL;
 			}
 		}
 	}
diff --git a/indra/llrender/llglslshader.cpp b/indra/llrender/llglslshader.cpp
index 0579a8242e39ce96f7b4a307bef791c8808b6abd..16b831fe02041603599059d2e5198be6d99499c2 100644
--- a/indra/llrender/llglslshader.cpp
+++ b/indra/llrender/llglslshader.cpp
@@ -141,9 +141,9 @@ void LLGLSLShader::finishProfile(bool emit_report)
         }
             
     LL_INFOS() << "-----------------------------------" << LL_ENDL;
-    LL_INFOS() << absl::StreamFormat("Total rendering time: %.4f ms", sTotalTimeElapsed/1000000.f) << LL_ENDL;
-    LL_INFOS() << absl::StreamFormat("Total samples drawn: %.4f million", sTotalSamplesDrawn/1000000.f) << LL_ENDL;
-    LL_INFOS() << absl::StreamFormat("Total triangles drawn: %.3f million", sTotalTrianglesDrawn/1000000.f) << LL_ENDL;
+    LL_INFOS() << "Total rendering time: " << llformat("%.4f ms", sTotalTimeElapsed/1000000.f) << LL_ENDL;
+    LL_INFOS() << "Total samples drawn: " << llformat("%.4f million", sTotalSamplesDrawn/1000000.f) << LL_ENDL;
+    LL_INFOS() << "Total triangles drawn: " << llformat("%.3f million", sTotalTrianglesDrawn/1000000.f) << LL_ENDL;
     }
 }
 
@@ -194,10 +194,10 @@ void LLGLSLShader::dumpStats()
         F32 pct_calls = (F32) mDrawCalls/(F32)sTotalDrawCalls*100.f;
         U32 avg_batch = mTrianglesDrawn/mDrawCalls;
 
-        LL_INFOS() << absl::StreamFormat("Triangles Drawn: %u (%.2f pct of total, %.3f million/sec)", mTrianglesDrawn, pct_tris, tris_sec ) << LL_ENDL;
-        LL_INFOS() << absl::StreamFormat("Draw Calls: %u (%.2f pct of total, avg %d tris/call)", mDrawCalls, pct_calls, avg_batch) << LL_ENDL;
-        LL_INFOS() << absl::StreamFormat("SamplesDrawn: %ull (%.2f pct of total, %.3f billion/sec)", mSamplesDrawn, pct_samples, samples_sec) << LL_ENDL;
-        LL_INFOS() << absl::StreamFormat("Time Elapsed: %ull (%.2f pct of total, %.5f ms)", mTimeElapsed, (F32) ((F64)mTimeElapsed/(F64)sTotalTimeElapsed)*100.f, ms) << LL_ENDL;
+        LL_INFOS() << "Triangles Drawn: " << mTrianglesDrawn <<  " " << llformat("(%.2f pct of total, %.3f million/sec)", pct_tris, tris_sec ) << LL_ENDL;
+        LL_INFOS() << "Draw Calls: " << mDrawCalls << " " << llformat("(%.2f pct of total, avg %d tris/call)", pct_calls, avg_batch) << LL_ENDL;
+        LL_INFOS() << "SamplesDrawn: " << mSamplesDrawn << " " << llformat("(%.2f pct of total, %.3f billion/sec)", pct_samples, samples_sec) << LL_ENDL;
+        LL_INFOS() << "Time Elapsed: " << mTimeElapsed << " " << llformat("(%.2f pct of total, %.5f ms)\n", (F32) ((F64)mTimeElapsed/(F64)sTotalTimeElapsed)*100.f, ms) << LL_ENDL;
     }
 }
 
@@ -458,7 +458,7 @@ BOOL LLGLSLShader::createShader(std::vector<LLStaticHashedString> * attributes,
 
         for (S32 i = 0; i < channel_count; i++)
         {
-            LLStaticHashedString uniName(absl::StrFormat("tex%d", i));
+            LLStaticHashedString uniName(llformat("tex%d", i));
             uniform1i(uniName, i);
         }
 
diff --git a/indra/llrender/llimagegl.cpp b/indra/llrender/llimagegl.cpp
index 7f76a347a638276503a94cee3a5c5562611e5bba..d119507cc41893eeeadce21ac2097c775b473030 100644
--- a/indra/llrender/llimagegl.cpp
+++ b/indra/llrender/llimagegl.cpp
@@ -536,7 +536,7 @@ bool LLImageGL::setSize(S32 width, S32 height, S32 ncomponents, S32 discard_leve
 		// Check if dimensions are a power of two!
 		if (!checkSize(width,height))
 		{
-			LL_WARNS() << absl::StreamFormat("Texture has non power of two dimension: %dx%d",width,height) << LL_ENDL;
+			LL_WARNS() << llformat("Texture has non power of two dimension: %dx%d",width,height) << LL_ENDL;
 			return false;
 		}
 		
@@ -1635,7 +1635,7 @@ BOOL LLImageGL::readBackRaw(S32 discard_level, LLImageRaw* imageraw, bool compre
 
 	if (width <= 0 || width > 2048 || height <= 0 || height > 2048 || ncomponents < 1 || ncomponents > 4)
 	{
-		LL_ERRS() << absl::StreamFormat("LLImageGL::readBackRaw: bogus params: %d x %d x %d",width,height,ncomponents) << LL_ENDL;
+		LL_ERRS() << llformat("LLImageGL::readBackRaw: bogus params: %d x %d x %d",width,height,ncomponents) << LL_ENDL;
 	}
 	
 	LLGLint is_compressed = 0;
diff --git a/indra/llrender/llshadermgr.cpp b/indra/llrender/llshadermgr.cpp
index a6d55624b8778171e651b97f7479c0035ac589f5..c62874d5c0e74d066dcf2caf1cf38cc7b94776cd 100644
--- a/indra/llrender/llshadermgr.cpp
+++ b/indra/llrender/llshadermgr.cpp
@@ -846,7 +846,7 @@ GLuint LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shader_lev
 		//uniform declartion
 		for (S32 i = 0; i < texture_index_channels; ++i)
 		{
-			std::string decl = absl::StrFormat("uniform sampler2D tex%d;\n", i);
+			std::string decl = llformat("uniform sampler2D tex%d;\n", i);
 			extra_code_text[extra_code_count++] = strdup(decl.c_str());
 		}
 
@@ -870,7 +870,7 @@ GLuint LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shader_lev
 			{ //switches are unreliable on some NVIDIA drivers
 				for (U32 i = 0; i < texture_index_channels; ++i)
 				{
-					std::string if_string = absl::StrFormat("\t%sif (vary_texture_index == %d) { return texture2D(tex%d, texcoord); }\n", i > 0 ? "else " : "", i, i); 
+					std::string if_string = llformat("\t%sif (vary_texture_index == %d) { return texture2D(tex%d, texcoord); }\n", i > 0 ? "else " : "", i, i); 
 					extra_code_text[extra_code_count++] = strdup(if_string.c_str());
 				}
 				extra_code_text[extra_code_count++] = strdup("\treturn vec4(1,0,1,1);\n");
@@ -885,7 +885,7 @@ GLuint LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shader_lev
 				//switch body
 				for (S32 i = 0; i < texture_index_channels; ++i)
 				{
-					std::string case_str = absl::StrFormat("\t\tcase %d: return texture2D(tex%d, texcoord);\n", i, i);
+					std::string case_str = llformat("\t\tcase %d: return texture2D(tex%d, texcoord);\n", i, i);
 					extra_code_text[extra_code_count++] = strdup(case_str.c_str());
 				}
 
diff --git a/indra/llui/llfloaterreg.cpp b/indra/llui/llfloaterreg.cpp
index d172484d8e9db65357194682a0f13126395bc078..3433dcee8cb7a770db1ac05a142b556bba9317e4 100644
--- a/indra/llui/llfloaterreg.cpp
+++ b/indra/llui/llfloaterreg.cpp
@@ -378,7 +378,7 @@ void LLFloaterReg::restoreVisibleInstances()
 //static
 std::string LLFloaterReg::getRectControlName(const std::string& name)
 {
-	return absl::StrCat("floater_rect_", getBaseControlName(name));
+	return std::string("floater_rect_") + getBaseControlName(name);
 }
 
 //static
@@ -386,27 +386,27 @@ std::string LLFloaterReg::declareRectControl(const std::string& name)
 {
 	std::string controlname = getRectControlName(name);
 	LLFloater::getControlGroup()->declareRect(controlname, LLRect(),
-											  absl::StrFormat("Window Size for %s", name),
+											  llformat("Window Size for %s", name.c_str()),
 											  LLControlVariable::PERSIST_NONDFT);
 	return controlname;
 }
 
 std::string LLFloaterReg::declarePosXControl(const std::string& name)
 {
-	std::string controlname = absl::StrCat("floater_pos_", getBaseControlName(name), "_x");
+	std::string controlname = std::string("floater_pos_") + getBaseControlName(name) + "_x";
 	LLFloater::getControlGroup()->declareF32(controlname, 
 											10.f,
-											absl::StrFormat("Window X Position for %s", name),
+											llformat("Window X Position for %s", name.c_str()),
 											LLControlVariable::PERSIST_NONDFT);
 	return controlname;
 }
 
 std::string LLFloaterReg::declarePosYControl(const std::string& name)
 {
-	std::string controlname = absl::StrCat("floater_pos_", getBaseControlName(name), "_y");
+	std::string controlname = std::string("floater_pos_") + getBaseControlName(name) + "_y";
 	LLFloater::getControlGroup()->declareF32(controlname,
 											10.f,
-											absl::StrFormat("Window Y Position for %s", name),
+											llformat("Window Y Position for %s", name.c_str()),
 											LLControlVariable::PERSIST_NONDFT);
 
 	return controlname;
@@ -416,7 +416,7 @@ std::string LLFloaterReg::declarePosYControl(const std::string& name)
 //static
 std::string LLFloaterReg::getVisibilityControlName(const std::string& name)
 {
-	return absl::StrCat("floater_vis_", getBaseControlName(name));
+	return std::string("floater_vis_") + getBaseControlName(name);
 }
 
 //static 
@@ -433,7 +433,7 @@ std::string LLFloaterReg::declareVisibilityControl(const std::string& name)
 {
 	std::string controlname = getVisibilityControlName(name);
 	LLFloater::getControlGroup()->declareBOOL(controlname, FALSE,
-												 absl::StrFormat("Window Visibility for %s", name),
+												 llformat("Window Visibility for %s", name.c_str()),
 												 LLControlVariable::PERSIST_NONDFT);
 	return controlname;
 }
@@ -443,7 +443,7 @@ std::string LLFloaterReg::declareDockStateControl(const std::string& name)
 {
 	std::string controlname = getDockStateControlName(name);
 	LLFloater::getControlGroup()->declareBOOL(controlname, TRUE,
-												 absl::StrFormat("Window Docking state for %s", name),
+												 llformat("Window Docking state for %s", name.c_str()),
 												 LLControlVariable::PERSIST_NONDFT);
 	return controlname;
 
diff --git a/indra/llui/lllineeditor.cpp b/indra/llui/lllineeditor.cpp
index 997dab0dceb8537be3414cf4b8a5d6e09e80da69..d89e79a19b728ad53e2dc9d44ee97f1559e2a9b9 100644
--- a/indra/llui/lllineeditor.cpp
+++ b/indra/llui/lllineeditor.cpp
@@ -2356,7 +2356,7 @@ BOOL LLLineEditor::evaluateFloat()
 	else
 	{
 		// Replace the expression with the result
-		std::string result_str = absl::StrFormat("%f", result);
+		std::string result_str = llformat("%f",result);
 		setText(result_str);
 		selectAll();
 	}
diff --git a/indra/llui/llscrolllistctrl.cpp b/indra/llui/llscrolllistctrl.cpp
index 6f04ad3187bd69245c3d9db69f6fb95944956ff8..2c9d26d913803765fd33362e22cd4e5d42b500f6 100644
--- a/indra/llui/llscrolllistctrl.cpp
+++ b/indra/llui/llscrolllistctrl.cpp
@@ -2729,7 +2729,7 @@ void LLScrollListCtrl::addColumn(const LLScrollListColumn::Params& column_params
 	// if no column name provided, just use ordinal as name
 	if (name.empty())
 	{
-		name = absl::StrCat(mColumnsIndexed.size());
+		name = llformat("%d", mColumnsIndexed.size());
 	}
 
 	if (mColumns.find(name) == mColumns.end())
@@ -2945,7 +2945,7 @@ LLScrollListItem* LLScrollListCtrl::addRow(LLScrollListItem *new_item, const LLS
 		// empty columns strings index by ordinal
 		if (column.empty())
 		{
-			column = absl::StrFormat("%d", col_index);
+			column = llformat("%d", col_index);
 		}
 
 		LLScrollListColumn* columnp = getColumn(column);
diff --git a/indra/llui/llstatbar.cpp b/indra/llui/llstatbar.cpp
index 01a4e6494911c38dd547f43794637215de506da5..6c8e63442badf14ca6498a37bad9057d2ddaadcd 100644
--- a/indra/llui/llstatbar.cpp
+++ b/indra/llui/llstatbar.cpp
@@ -619,7 +619,7 @@ void LLStatBar::drawLabelAndValue( F32 value, std::string &label, LLRect &bar_re
 		LLFontGL::LEFT, LLFontGL::TOP);
 
 	std::string value_str	= !llisnan(value)
-							? absl::StrFormat("%10.*f %s", decimal_digits, value, label)
+							? llformat("%10.*f %s", decimal_digits, value, label.c_str())
 							: LLTrans::getString("na");
 
 	// Draw the current value.
@@ -690,7 +690,7 @@ void LLStatBar::drawTicks( F32 min, F32 max, F32 value_scale, LLRect &bar_rect )
 			{
 				decimal_digits = 0;
 			}
-			std::string tick_label = absl::StrFormat("%.*f", decimal_digits, tick_value);
+			std::string tick_label = llformat("%.*f", decimal_digits, tick_value);
 			S32 tick_label_width = LLFontGL::getFontMonospace()->getWidth(tick_label);
 			if (mOrientation == HORIZONTAL)
 			{
diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp
index 8fd7c4bae3d0bf202ff0bda76e2996b3bef59939..9fb338a287a78d1620926127dcf1e44c8278aff2 100644
--- a/indra/llui/lltexteditor.cpp
+++ b/indra/llui/lltexteditor.cpp
@@ -2644,7 +2644,7 @@ BOOL LLTextEditor::importBuffer(const char* buffer, S32 length )
 	text[text_len] = '\0';
 	if( text_len != (S32)strlen(text) )/* Flawfinder: ignore */
 	{
-		LL_WARNS() << absl::StreamFormat("Invalid text length: %d != %d ",strlen(text),text_len) << LL_ENDL;/* Flawfinder: ignore */
+		LL_WARNS() << llformat("Invalid text length: %d != %d ",strlen(text),text_len) << LL_ENDL;/* Flawfinder: ignore */
 		success = FALSE;
 	}
 
diff --git a/indra/llui/lltimectrl.cpp b/indra/llui/lltimectrl.cpp
index b120d4a381de65016d04b930441df76c75f21b32..f76c6bc92e5900a479cfa8014422c08dc8e564ba 100644
--- a/indra/llui/lltimectrl.cpp
+++ b/indra/llui/lltimectrl.cpp
@@ -314,7 +314,7 @@ void LLTimeCtrl::updateText()
 	if (h12 == 0)
 		h12 = 12;
 
-	mEditor->setText(absl::StrFormat("%d:%02d %s", h12, m, isPM() ? "PM":"AM"));
+	mEditor->setText(llformat("%d:%02d %s", h12, m, isPM() ? "PM":"AM"));
 }
 
 LLTimeCtrl::EEditingPart LLTimeCtrl::getEditingPart()
diff --git a/indra/llui/lltrans.cpp b/indra/llui/lltrans.cpp
index 8ac3ca0df360acb7dbdc5d5d99da936d851521f0..34e10ed26449f318248559f6e62d1bd3f8a34b51 100644
--- a/indra/llui/lltrans.cpp
+++ b/indra/llui/lltrans.cpp
@@ -99,7 +99,7 @@ bool LLTrans::parseStrings(LLXMLNodePtr &root, const std::set<std::string>& defa
 		{
 			std::string name = *iter;
 			if (name[0] != '[')
-				name = absl::StrFormat("[%s]", name);
+				name = llformat("[%s]",name.c_str());
 			sDefaultArgs[name] = xml_template.mText;
 		}
 	}
diff --git a/indra/llui/llurlentry.cpp b/indra/llui/llurlentry.cpp
index b7fc6d19eacf326dd2d7b70b8c3d1a71bec152c9..9a76498fa13123c270b24a9049726498b9bea372 100644
--- a/indra/llui/llurlentry.cpp
+++ b/indra/llui/llurlentry.cpp
@@ -1053,12 +1053,15 @@ void LLUrlEntryParcel::processParcelInfo(const LLParcelData& parcel_data)
 		S32 region_y = ll_round(parcel_data.global_y) % REGION_WIDTH_UNITS;
 		S32 region_z = ll_round(parcel_data.global_z);
 
-		label = absl::StrFormat("%s (%d, %d, %d)",
-				parcel_data.sim_name, region_x, region_y, region_z);
+		label = llformat("%s (%d, %d, %d)",
+				parcel_data.sim_name.c_str(), region_x, region_y, region_z);
 	}
 
-	for (LLUrlEntryParcel* url_entry : sParcelInfoObservers)
+	for (std::set<LLUrlEntryParcel*>::iterator iter = sParcelInfoObservers.begin();
+			iter != sParcelInfoObservers.end();
+			++iter)
 	{
+		LLUrlEntryParcel* url_entry = *iter;
 		if (url_entry)
 		{
 			url_entry->onParcelInfoReceived(parcel_data.parcel_id.asString(), label);
diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp
index 04e957bbe80227fe64f55a5aecbfdd506c6569ca..0e547dce7675edae5442a5ec4a99b588559ad092 100644
--- a/indra/llui/llview.cpp
+++ b/indra/llui/llview.cpp
@@ -1337,7 +1337,7 @@ void LLView::drawDebugRect()
 
 			y = rect_height - LINE_HEIGHT * (depth % lines + 1);
 
-			std::string debug_text = absl::StrFormat("%s (%d x %d)", getName(),
+			std::string debug_text = llformat("%s (%d x %d)", getName().c_str(),
 										debug_rect.getWidth(), debug_rect.getHeight());
 			LLFontGL::getFontSansSerifSmall()->renderUTF8(debug_text, 0, (F32)x, (F32)y, border_color,
 												LLFontGL::HCENTER, LLFontGL::BASELINE, LLFontGL::NORMAL, LLFontGL::NO_SHADOW,
diff --git a/indra/llvfs/llvfs.cpp b/indra/llvfs/llvfs.cpp
index 065cc7e0ed7f0945ab789421f107d6aa966d3575..617056d94d224eeea3d89b26b45063fe469811e4 100644
--- a/indra/llvfs/llvfs.cpp
+++ b/indra/llvfs/llvfs.cpp
@@ -613,8 +613,8 @@ LLVFS * LLVFS::createLLVFS(const std::string& index_filename,
 		while (!new_vfs->isValid() &&
 				count < 256)
 		{	// Append '.<number>' to end of filenames
-			retry_vfs_index_name = index_filename + absl::StrFormat(".%d",count);
-			retry_vfs_data_name = data_filename + absl::StrFormat(".%d", count);
+			retry_vfs_index_name = index_filename + llformat(".%u",count);
+			retry_vfs_data_name = data_filename + llformat(".%u", count);
 
 			delete new_vfs;	// Delete bad VFS and try again
 			new_vfs = new LLVFS(retry_vfs_index_name, retry_vfs_data_name, read_only, presize, remove_after_crash);
@@ -1181,7 +1181,7 @@ S32 LLVFS::storeData(const LLUUID &file_id, const LLAssetType::EType file_type,
 			S32 write_len = (S32)fwrite(buffer, 1, length, mDataFP);
 			if (write_len != length)
 			{
-				LL_WARNS() << absl::StreamFormat("VFS Write Error: %d != %d",write_len,length) << LL_ENDL;
+				LL_WARNS() << llformat("VFS Write Error: %d != %d",write_len,length) << LL_ENDL;
 			}
 			// fflush(mDataFP);
 			
@@ -1986,7 +1986,7 @@ void LLVFS::dumpStatistics()
 	LL_INFOS() << "Total file size: " << total_file_size/1024 << "K" << LL_ENDL;
 	LL_INFOS() << "Total free size: " << total_free_size/1024 << "K" << LL_ENDL;
 	LL_INFOS() << "Sum: " << (total_file_size + total_free_size) << " bytes" << LL_ENDL;
-	LL_INFOS() << absl::StreamFormat("%.0f%% full",((F32)(total_file_size)/(F32)(total_file_size+total_free_size))*100.f) << LL_ENDL;
+	LL_INFOS() << llformat("%.0f%% full",((F32)(total_file_size)/(F32)(total_file_size+total_free_size))*100.f) << LL_ENDL;
 
 	LL_INFOS() << " " << LL_ENDL;
 	for (std::map<LLAssetType::EType, std::pair<S32,S32> >::iterator iter = filetype_counts.begin();
diff --git a/indra/llvfs/llvfsthread.cpp b/indra/llvfs/llvfsthread.cpp
index 712ad9ee8393fbaa7ac3afd66fb79def5bee7fe4..8cd85929e2aa8cec6b2e4fa3bdc68a958f34368b 100644
--- a/indra/llvfs/llvfsthread.cpp
+++ b/indra/llvfs/llvfsthread.cpp
@@ -273,13 +273,13 @@ bool LLVFSThread::Request::processRequest()
 		llassert(mOffset >= 0);
 		mBytesRead = mVFS->getData(mFileID, mFileType, mBuffer, mOffset, mBytes);
 		complete = true;
-		//LL_INFOS() << absl::StreamFormat("LLVFSThread::READ '%s': %d bytes arg:%d",getFilename(),mBytesRead) << LL_ENDL;
+		//LL_INFOS() << llformat("LLVFSThread::READ '%s': %d bytes arg:%d",getFilename(),mBytesRead) << LL_ENDL;
 	}
 	else if (mOperation ==  FILE_WRITE)
 	{
 		mBytesRead = mVFS->storeData(mFileID, mFileType, mBuffer, mOffset, mBytes);
 		complete = true;
-		//LL_INFOS() << absl::StreamFormat("LLVFSThread::WRITE '%s': %d bytes arg:%d",getFilename(),mBytesRead) << LL_ENDL;
+		//LL_INFOS() << llformat("LLVFSThread::WRITE '%s': %d bytes arg:%d",getFilename(),mBytesRead) << LL_ENDL;
 	}
 	else if (mOperation ==  FILE_RENAME)
 	{
@@ -288,11 +288,11 @@ bool LLVFSThread::Request::processRequest()
 		mVFS->renameFile(mFileID, mFileType, *new_idp, new_type);
 		mFileID = *new_idp;
 		complete = true;
-		//LL_INFOS() << absl::StreamFormat("LLVFSThread::RENAME '%s': %d bytes arg:%d",getFilename(),mBytesRead) << LL_ENDL;
+		//LL_INFOS() << llformat("LLVFSThread::RENAME '%s': %d bytes arg:%d",getFilename(),mBytesRead) << LL_ENDL;
 	}
 	else
 	{
-		LL_ERRS() << absl::StreamFormat("LLVFSThread::unknown operation: %d", mOperation) << LL_ENDL;
+		LL_ERRS() << llformat("LLVFSThread::unknown operation: %d", mOperation) << LL_ENDL;
 	}
 	return complete;
 }