diff --git a/indra/llui/llnotifications.cpp b/indra/llui/llnotifications.cpp
index 6085c61f9a2470155942bebce0cbc14cc87a43e9..ffe5908a9d7ed490ad1fbe3b7b2b95347d72e156 100644
--- a/indra/llui/llnotifications.cpp
+++ b/indra/llui/llnotifications.cpp
@@ -245,7 +245,6 @@ LLNotificationForm::LLNotificationForm(const std::string& name, const LLNotifica
 	LLParamSDParser parser;
 	parser.writeSD(mFormData, p.form_elements);
 
-	mFormData = mFormData[""];
 	if (!mFormData.isArray())
 	{
 		// change existing contents to a one element array
diff --git a/indra/llui/llsdparam.cpp b/indra/llui/llsdparam.cpp
index 7deedb18b8589a0d7d1604e97104017f36f90b5c..04919e69916046457a4a68cc1ee2233a2f12ff83 100644
--- a/indra/llui/llsdparam.cpp
+++ b/indra/llui/llsdparam.cpp
@@ -159,11 +159,6 @@ LLSD* LLParamSDParser::getSDWriteNode(const parser_t::name_stack_t& name_stack)
 		it != name_stack.end();
 		++it)
 	{
-		if (it->first.empty())
-		{
-			continue;
-		}
-
 		bool new_array_entry = false;
 		if (prev_it == mNameStack.end())
 		{
@@ -188,7 +183,7 @@ LLSD* LLParamSDParser::getSDWriteNode(const parser_t::name_stack_t& name_stack)
 			}
 		}
 
-		LLSD* child_sd = &(*sd_to_write)[it->first];
+		LLSD* child_sd = it->first.empty() ? sd_to_write : &(*sd_to_write)[it->first];
 
 		if (child_sd->isArray())
 		{