diff --git a/indra/llmessage/lltemplatemessagereader.cpp b/indra/llmessage/lltemplatemessagereader.cpp
index ab91f74abe606a31d25bc64dcf215022888d4782..94bc7cb0458455df8b961444c2270de56a8bf597 100755
--- a/indra/llmessage/lltemplatemessagereader.cpp
+++ b/indra/llmessage/lltemplatemessagereader.cpp
@@ -91,15 +91,17 @@ void LLTemplateMessageReader::getData(const char *blockname, const char *varname
 	}
 
 	LLMsgBlkData *msg_block_data = iter->second;
-	LLMsgVarData& vardata = msg_block_data->mMemberVarData[vnamep];
+	LLMsgBlkData::msg_var_data_map_t &var_data_map = msg_block_data->mMemberVarData;
 
-	if (!vardata.getName())
+	if (var_data_map.find(vnamep) == var_data_map.end())
 	{
 		llerrs << "Variable "<< vnamep << " not in message "
 			<< mCurrentRMessageData->mName<< " block " << bnamep << llendl;
 		return;
 	}
 
+	LLMsgVarData& vardata = msg_block_data->mMemberVarData[vnamep];
+
 	if (size && size != vardata.getSize())
 	{
 		llerrs << "Msg " << mCurrentRMessageData->mName