diff --git a/doc/contributions.txt b/doc/contributions.txt
index d33c448416a63390644ca6bf3cc130fd3178f5c4..397311373eab3b4b734aff79196a7214786d4826 100644
--- a/doc/contributions.txt
+++ b/doc/contributions.txt
@@ -443,6 +443,7 @@ Jonathan Yap
 	STORM-1236
 	STORM-1259
 	STORM-787
+	STORM-1313
 	STORM-899
 	STORM-1273
 Kage Pixel
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 0aada644f303da620544b40420b366a2b246eb97..01a5cb18dbaf5c418e439cc290acb7c964b97074 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -6486,10 +6486,14 @@ void process_script_dialog(LLMessageSystem* msg, void**)
 	LLSD payload;
 
 	LLUUID object_id;
-    LLUUID owner_id;
-
 	msg->getUUID("Data", "ObjectID", object_id);
-    msg->getUUID("OwnerData", "OwnerID", owner_id);
+
+//	For compability with OS grids first check for presence of extended packet before fetching data.
+    LLUUID owner_id;
+	if (gMessageSystem->getNumberOfBlocks("OwnerData") > 0)
+	{
+		msg->getUUID("OwnerData", "OwnerID", owner_id);
+	}
 
 	if (LLMuteList::getInstance()->isMuted(object_id) || LLMuteList::getInstance()->isMuted(owner_id))
 	{