diff --git a/indra/llmessage/llsdmessagebuilder.cpp b/indra/llmessage/llsdmessagebuilder.cpp
index 49456c71ed3cc020755a95d41a3c72b8bce14cf1..ae3e00e9f37998d61dcecc12efe9d5036987cc1f 100644
--- a/indra/llmessage/llsdmessagebuilder.cpp
+++ b/indra/llmessage/llsdmessagebuilder.cpp
@@ -49,12 +49,6 @@ LLSDMessageBuilder::LLSDMessageBuilder() :
 {
 }
 
-//virtual
-LLSDMessageBuilder::~LLSDMessageBuilder()
-{
-}
-
-
 // virtual
 void LLSDMessageBuilder::newMessage(const char* name)
 {
diff --git a/indra/llmessage/llsdmessagebuilder.h b/indra/llmessage/llsdmessagebuilder.h
index 9c7c1bfde3588f8508ba974a66ee4ae61e45d5a5..5335dfad3d942c56748b9f9461063f8dc88986a0 100644
--- a/indra/llmessage/llsdmessagebuilder.h
+++ b/indra/llmessage/llsdmessagebuilder.h
@@ -36,14 +36,14 @@
 class LLMessageTemplate;
 class LLMsgData;
 
-class LLSDMessageBuilder : public LLMessageBuilder
+class LLSDMessageBuilder final : public LLMessageBuilder
 {
 public:
 
 	//CLASS_LOG_TYPE(LLSDMessageBuilder);
 	
 	LLSDMessageBuilder();
-	virtual ~LLSDMessageBuilder();
+	virtual ~LLSDMessageBuilder() = default;
 
 	virtual void newMessage(const char* name);
 
diff --git a/indra/llmessage/lltemplatemessagebuilder.cpp b/indra/llmessage/lltemplatemessagebuilder.cpp
index 5ac5f6c580305aff5db5e7074929d79dc117a90e..530f2ae4e9af3e5bfe6cb92f25e9404da317b52c 100644
--- a/indra/llmessage/lltemplatemessagebuilder.cpp
+++ b/indra/llmessage/lltemplatemessagebuilder.cpp
@@ -68,28 +68,25 @@ void LLTemplateMessageBuilder::newMessage(const char *name)
 	mCurrentSMessageData = NULL;
 
 	char* namep = (char*)name; 
-	if (mMessageTemplates.count(namep) > 0)
+	auto it = mMessageTemplates.find(namep);
+	if (it != mMessageTemplates.end())
 	{
-		mCurrentSMessageTemplate = mMessageTemplates.find(name)->second;
+		mCurrentSMessageTemplate = it->second;
 		mCurrentSMessageData = new LLMsgData(namep);
 		mCurrentSMessageName = namep;
 		mCurrentSDataBlock = NULL;
 		mCurrentSBlockName = NULL;
 
 		// add at one of each block
-		const LLMessageTemplate* msg_template = mMessageTemplates.find(name)->second;
+		const LLMessageTemplate* msg_template = it->second;
 
 		if (msg_template->getDeprecation() != MD_NOTDEPRECATED)
 		{
 			LL_WARNS() << "Sending deprecated message " << namep << LL_ENDL;
 		}
 		
-		LLMessageTemplate::message_block_map_t::const_iterator iter;
-		for(iter = msg_template->mMemberBlocks.begin();
-			iter != msg_template->mMemberBlocks.end();
-			++iter)
+		for(LLMessageBlock* ci : msg_template->mMemberBlocks)
 		{
-			LLMessageBlock* ci = *iter;
 			LLMsgBlkData* tblockp = new LLMsgBlkData(ci->mName, 0);
 			mCurrentSMessageData->addBlock(tblockp);
 		}
@@ -148,11 +145,9 @@ void LLTemplateMessageBuilder::nextBlock(const char* blockname)
 		mCurrentSBlockName = bnamep;
 
 		// add placeholders for each of the variables
-		for (LLMessageBlock::message_variable_map_t::const_iterator iter = template_data->mMemberVariables.begin();
-			 iter != template_data->mMemberVariables.end(); iter++)
+		for (const LLMessageVariable* ci : template_data->mMemberVariables)
 		{
-			LLMessageVariable& ci = **iter;
-			mCurrentSDataBlock->addVariable(ci.getName(), ci.getType());
+			mCurrentSDataBlock->addVariable(ci->getName(), ci->getType());
 		}
 		return;
 	}
diff --git a/indra/llmessage/lltemplatemessagebuilder.h b/indra/llmessage/lltemplatemessagebuilder.h
index 4f614a4657555c81c6f668388d4f0710eb4b78e0..855ea871448ccc2cda079ad5b9a6a23e3bfdaadb 100644
--- a/indra/llmessage/lltemplatemessagebuilder.h
+++ b/indra/llmessage/lltemplatemessagebuilder.h
@@ -37,7 +37,7 @@ class LLMessageTemplate;
 class LLMsgBlkData;
 class LLMessageTemplate;
 
-class LLTemplateMessageBuilder : public LLMessageBuilder
+class LLTemplateMessageBuilder final : public LLMessageBuilder
 {
 public: