diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp
index 71ea5d80a9e1bed01b9e9e90f3c8773397b15d1b..b9449e806fdaa9e04efe72be9ed294ea7283b12d 100644
--- a/indra/newview/llselectmgr.cpp
+++ b/indra/newview/llselectmgr.cpp
@@ -2786,6 +2786,36 @@ BOOL LLSelectMgr::selectGetRootsNonCharacter()
 }
 
 
+//-----------------------------------------------------------------------------
+// selectGetEditableLinksets() - return TRUE if all objects are editable
+//                               pathfinding linksets
+//-----------------------------------------------------------------------------
+BOOL LLSelectMgr::selectGetEditableLinksets()
+{
+	for (LLObjectSelection::iterator iter = getSelection()->begin();
+		 iter != getSelection()->end(); iter++ )
+	{
+		LLSelectNode* node = *iter;
+		LLViewerObject* object = node->getObject();
+		if( !object || !node->mValid )
+		{
+			return FALSE;
+		}
+		if (object->flagUsePhysics() ||
+			object->flagTemporaryOnRez() ||
+			object->flagCharacter() ||
+			object->flagAnimSource() ||
+			(!gAgent.isGodlike() && 
+			!gAgent.canManageEstate() &&
+			!object->permYouOwner() &&
+			!object->permMove()))
+		{
+			return FALSE;
+		}
+	}
+	return TRUE;
+}
+
 //-----------------------------------------------------------------------------
 // selectGetRootsTransfer() - return TRUE if current agent can transfer all
 // selected root objects.
diff --git a/indra/newview/llselectmgr.h b/indra/newview/llselectmgr.h
index bf40ab458ffc6e5bfdec6a4b16fc4ef235a9d64c..feab6ebdf89e9663b10a794ba6e5326035e9136c 100644
--- a/indra/newview/llselectmgr.h
+++ b/indra/newview/llselectmgr.h
@@ -584,6 +584,8 @@ class LLSelectMgr : public LLEditMenuHandler, public LLSingleton<LLSelectMgr>
 	BOOL selectGetRootsNonCharacter();
 	BOOL selectGetNonCharacter();
 
+	BOOL selectGetEditableLinksets();
+
 	// returns TRUE if selected objects can be transferred.
 	BOOL selectGetRootsTransfer();
 
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 06ffd2df924bc110a2f4b6a3e8840f43abc47ca8..3eb05383287575857d01f0410da3d0213babae12 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -2804,7 +2804,7 @@ bool enable_object_build()
 
 bool enable_object_select_in_pathfinding_linksets()
 {
-	return LLPathfindingManager::getInstance()->isPathfindingEnabledForCurrentRegion() &&  LLSelectMgr::getInstance()->selectGetNonCharacter();
+	return LLPathfindingManager::getInstance()->isPathfindingEnabledForCurrentRegion() && LLSelectMgr::getInstance()->selectGetEditableLinksets();
 }
 
 bool enable_object_select_in_pathfinding_characters()