diff --git a/indra/newview/llpanelpeoplemenus.cpp b/indra/newview/llpanelpeoplemenus.cpp
index 501dac5dff4dee48b65e81322d442ca9ef508959..470cfca8fec9fd11b2c5dd29ba5da213157b5ce1 100644
--- a/indra/newview/llpanelpeoplemenus.cpp
+++ b/indra/newview/llpanelpeoplemenus.cpp
@@ -61,7 +61,14 @@ ContextMenu::~ContextMenu()
 	// It can have registered Enable callbacks which are called from the LLMenuHolderGL::draw()
 	// via selected item (menu_item_call) by calling LLMenuItemCallGL::buildDrawLabel.
 	// we can have a crash via using callbacks of deleted instance of ContextMenu. EXT-4725
-	if (mMenu) 	mMenu->die();
+
+	// menu holder deletes its menus on viewer exit, so we have no way to determine if instance 
+	// of mMenu has already been deleted except of using LLHandle. EXT-4762.
+	if (!mMenuHandle.isDead())
+	{
+		mMenu->die();
+		mMenu = NULL;
+	}
 }
 
 void ContextMenu::show(LLView* spawning_view, const std::vector<LLUUID>& uuids, S32 x, S32 y)
@@ -86,6 +93,7 @@ void ContextMenu::show(LLView* spawning_view, const std::vector<LLUUID>& uuids,
 	std::copy(uuids.begin(), uuids.end(), mUUIDs.begin());
 
 	mMenu = createMenu();
+	mMenuHandle = mMenu->getHandle();
 	mMenu->show(x, y);
 	LLMenuGL::showPopup(spawning_view, mMenu, x, y);
 }
diff --git a/indra/newview/llpanelpeoplemenus.h b/indra/newview/llpanelpeoplemenus.h
index 7251f6dbbdb66f31c80e4f1e40adad7c8fb1aa83..913638d8c8670ed890ccbe3a73b8ea9629889139 100644
--- a/indra/newview/llpanelpeoplemenus.h
+++ b/indra/newview/llpanelpeoplemenus.h
@@ -62,6 +62,7 @@ class ContextMenu : public LLAvatarListItem::ContextMenu
 
 	std::vector<LLUUID>	mUUIDs;
 	LLContextMenu*		mMenu;
+	LLHandle<LLView>	mMenuHandle;
 };
 
 /**