Index: ../indra/newview/llviewermessage.cpp
===================================================================
--- ../indra/newview/llviewermessage.cpp	(revision 75432)
+++ ../indra/newview/llviewermessage.cpp	(working copy)
@@ -1328,7 +1328,7 @@
 	S32 binary_bucket_size;
 	LLChat chat;
 
-	//*TODO:translate - need to fix the full name to first/last (maybe)
+	// *TODO:translate - need to fix the full name to first/last (maybe)
 	msg->getUUIDFast(_PREHASH_AgentData, _PREHASH_AgentID, from_id);
 	msg->getBOOLFast(_PREHASH_MessageBlock, _PREHASH_FromGroup, from_group);
 	msg->getUUIDFast(_PREHASH_MessageBlock, _PREHASH_ToAgentID, to_id);
@@ -1865,6 +1865,8 @@
 
 	case IM_GOTO_URL:
 		{
+			// n.b. this is for URLs sent by the system, not for
+			// URLs sent by scripts (i.e. llLoadURL)
 			if (binary_bucket_size <= 0)
 			{
 				llwarns << "bad binary_bucket_size: "
@@ -5061,7 +5063,7 @@
 				owner_name += last;
 			}
 
-			// TODO: Talk to james about using an id instead of a name for this.
+			// For legacy name-only mutes.
 			if (gMuteListp->isMuted(LLUUID::null, owner_name))
 			{
 				delete infop;
@@ -5096,8 +5098,12 @@
 	// URL is safety checked in load_url above
 
 	// Check if object or owner is muted
-	if (gMuteListp->isMuted(infop->mObjectID, infop->mObjectName))
+	if (gMuteListp &&
+	    (gMuteListp->isMuted(infop->mObjectID, infop->mObjectName) ||
+	     gMuteListp->isMuted(infop->mOwnerID))
+	    )
 	{
+		llinfos<<"Ignoring load_url from muted object/owner."<<llendl;
 		delete infop;
 		infop = NULL;
 		return;
