diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp
index 8f7cac1f61ffd8f88ebea7b04d2fccef6858d02e..62c3f401bf9c9ce29cb1655a923e7120c306b640 100644
--- a/indra/llui/llview.cpp
+++ b/indra/llui/llview.cpp
@@ -588,6 +588,11 @@ void LLView::onVisibilityChange ( BOOL new_visibility )
 	BOOL log_visibility_change = LLViewerEventRecorder::instance().getLoggingStatus();
 	BOOST_FOREACH(LLView* viewp, mChildList)
 	{
+		if (!viewp)
+		{
+			continue;
+		}
+
 		// only views that are themselves visible will have their overall visibility affected by their ancestors
 		old_visibility=viewp->getVisible();
 
diff --git a/indra/newview/llinspectremoteobject.cpp b/indra/newview/llinspectremoteobject.cpp
index a12ec390af477035e79523785c88b3b511d1ad58..b64df2bd47176affd6fcfc24bb7de8f2f3c24d1f 100644
--- a/indra/newview/llinspectremoteobject.cpp
+++ b/indra/newview/llinspectremoteobject.cpp
@@ -181,7 +181,7 @@ void LLInspectRemoteObject::update()
 	getChild<LLUICtrl>("map_btn")->setEnabled(! mSLurl.empty());
 
 	// disable the Block button if we don't have the object ID (will this ever happen?)
-	getChild<LLUICtrl>("block_btn")->setEnabled(! mObjectID.isNull());
+	getChild<LLUICtrl>("block_btn")->setEnabled(!mObjectID.isNull() && !LLMuteList::getInstance()->isMuted(mObjectID));
 }
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/indra/newview/llmeshrepository.cpp b/indra/newview/llmeshrepository.cpp
index 0aaed3e286768ac9495ddc496a0d5517bc1985cc..117507ef39307ca7dcc2dbf4d661cdd75fbaa1fd 100644
--- a/indra/newview/llmeshrepository.cpp
+++ b/indra/newview/llmeshrepository.cpp
@@ -4034,6 +4034,11 @@ void LLMeshRepository::uploadError(LLSD& args)
 //static
 F32 LLMeshRepository::getStreamingCost(LLSD& header, F32 radius, S32* bytes, S32* bytes_visible, S32 lod, F32 *unscaled_value)
 {
+	if (header.size() == 0)
+	{
+		return 0.f;
+	}
+
 	F32 max_distance = 512.f;
 
 	F32 dlowest = llmin(radius/0.03f, max_distance);