diff --git a/indra/newview/llfloaterpathfindingobjects.cpp b/indra/newview/llfloaterpathfindingobjects.cpp
index f6ff83eaf4842c5c9c3eba8f032ac9e745f30b4c..5cf16f3ad6d821984fd66cd5c71791acafadf391 100644
--- a/indra/newview/llfloaterpathfindingobjects.cpp
+++ b/indra/newview/llfloaterpathfindingobjects.cpp
@@ -329,7 +329,7 @@ void LLFloaterPathfindingObjects::handleUpdateObjectList(LLPathfindingManager::r
 	}
 }
 
-void LLFloaterPathfindingObjects::rebuildObjectsScrollList()
+void LLFloaterPathfindingObjects::rebuildObjectsScrollList(bool update_if_needed)
 {
 	if (!mHasObjectsToBeSelected)
 	{
@@ -355,7 +355,14 @@ void LLFloaterPathfindingObjects::rebuildObjectsScrollList()
 	{
 		buildObjectsScrollList(mObjectList);
 
-		mObjectsScrollList->selectMultiple(mObjectsToBeSelected);
+		if(mObjectsScrollList->selectMultiple(mObjectsToBeSelected) == 0)
+		{
+			if(update_if_needed && mRefreshListButton->getEnabled())
+			{
+				requestGetObjects();
+				return;
+			}
+		}
 		if (mHasObjectsToBeSelected)
 		{
 			mObjectsScrollList->scrollToShowSelected();
@@ -484,7 +491,7 @@ void LLFloaterPathfindingObjects::showFloaterWithSelectionObjects()
 	}
 	else
 	{
-		rebuildObjectsScrollList();
+		rebuildObjectsScrollList(true);
 		if (isMinimized())
 		{
 			setMinimized(FALSE);
diff --git a/indra/newview/llfloaterpathfindingobjects.h b/indra/newview/llfloaterpathfindingobjects.h
index 4024e15fd63ee1a6e25a9203f72acbdbea02cfbe..752f741959d4b8fd0c37fe7ee341ec449beb80ec 100644
--- a/indra/newview/llfloaterpathfindingobjects.h
+++ b/indra/newview/llfloaterpathfindingobjects.h
@@ -80,7 +80,7 @@ class LLFloaterPathfindingObjects : public LLFloater
 	void                               handleNewObjectList(LLPathfindingManager::request_id_t pRequestId, LLPathfindingManager::ERequestStatus pRequestStatus, LLPathfindingObjectListPtr pObjectList);
 	void                               handleUpdateObjectList(LLPathfindingManager::request_id_t pRequestId, LLPathfindingManager::ERequestStatus pRequestStatus, LLPathfindingObjectListPtr pObjectList);
 
-	void                               rebuildObjectsScrollList();
+	void                               rebuildObjectsScrollList(bool update_if_needed = false);
 	virtual void                       buildObjectsScrollList(const LLPathfindingObjectListPtr pObjectListPtr);
 	void                               addObjectToScrollList(const LLPathfindingObjectPtr pObjectPr, const LLSD &pScrollListItemData);