diff --git a/indra/newview/llmoveview.cpp b/indra/newview/llmoveview.cpp
index 65c73bb0ec0d02da830522519488853ddbfb8a02..93f7146fc8060d46d9e8c8a4724b0bbd6191ca66 100644
--- a/indra/newview/llmoveview.cpp
+++ b/indra/newview/llmoveview.cpp
@@ -686,7 +686,7 @@ void LLPanelStandStopFlying::onStopFlyingButtonClick()
 	gAgent.setFlying(FALSE);
 
 	setFocus(FALSE); // EXT-482
-	setVisible(FALSE);
+	mStopFlyingButton->setVisible(FALSE);
 }
 
 /**
diff --git a/indra/newview/llpanelpathfindingrebakenavmesh.cpp b/indra/newview/llpanelpathfindingrebakenavmesh.cpp
index 4f7b3aa330f56ce81c96329dd2d227b1b67404d5..f423b5891fc1754d24ab906d01f56f00a565e3c8 100644
--- a/indra/newview/llpanelpathfindingrebakenavmesh.cpp
+++ b/indra/newview/llpanelpathfindingrebakenavmesh.cpp
@@ -59,13 +59,18 @@ LLPanelPathfindingRebakeNavmesh* LLPanelPathfindingRebakeNavmesh::getInstance()
 
 BOOL LLPanelPathfindingRebakeNavmesh::postBuild()
 {
-	//Rebake initiated
+	//Rebake button
 	mNavMeshRebakeButton = findChild<LLButton>("navmesh_btn");
 	llassert(mNavMeshRebakeButton != NULL);
 	mNavMeshRebakeButton->setCommitCallback(boost::bind(&LLPanelPathfindingRebakeNavmesh::onNavMeshRebakeClick, this));
 	LLHints::registerHintTarget("navmesh_btn", mNavMeshRebakeButton->getHandle());
 	
-	//Baking...
+	//Sending rebake request
+	mNavMeshSendingButton = findChild<LLButton>("navmesh_btn_sending");
+	llassert(mNavMeshSendingButton != NULL);
+	LLHints::registerHintTarget("navmesh_btn_sending", mNavMeshSendingButton->getHandle());
+
+	//rebaking...
 	mNavMeshBakingButton = findChild<LLButton>("navmesh_btn_baking");
 	llassert(mNavMeshBakingButton != NULL);
 	LLHints::registerHintTarget("navmesh_btn_baking", mNavMeshBakingButton->getHandle());
@@ -105,14 +110,24 @@ BOOL LLPanelPathfindingRebakeNavmesh::handleToolTip( S32 x, S32 y, MASK mask )
 	{
 		LLToolTipMgr::instance().show(mNavMeshRebakeButton->getToolTip());
 	}
+	else if (mNavMeshSendingButton->getVisible())
+	{
+		LLToolTipMgr::instance().show(mNavMeshSendingButton->getToolTip());
+	}
+	else if (mNavMeshBakingButton->getVisible())
+	{
+		LLToolTipMgr::instance().show(mNavMeshBakingButton->getToolTip());
+	}
 
 	return LLPanel::handleToolTip(x, y, mask);
 }
 
 LLPanelPathfindingRebakeNavmesh::LLPanelPathfindingRebakeNavmesh() 
-	: mCanRebakeRegion(FALSE),
+	: LLPanel(),
+	mCanRebakeRegion(FALSE),
 	mRebakeNavMeshMode(kRebakeNavMesh_Default),
 	mNavMeshRebakeButton(NULL),
+	mNavMeshSendingButton(NULL),
 	mNavMeshBakingButton(NULL),
 	mNavMeshSlot(),
 	mRegionCrossingSlot(),
@@ -142,7 +157,8 @@ void LLPanelPathfindingRebakeNavmesh::setMode(ERebakeNavMeshMode pRebakeNavMeshM
 		LLNotificationsUtil::add("PathfindingRebakeNavmesh");
 	}
 	mNavMeshRebakeButton->setVisible(pRebakeNavMeshMode == kRebakeNavMesh_Available);
-	mNavMeshBakingButton->setVisible(pRebakeNavMeshMode == kRebakeNavMesh_RequestSent);
+	mNavMeshSendingButton->setVisible(pRebakeNavMeshMode == kRebakeNavMesh_RequestSent);
+	mNavMeshBakingButton->setVisible(pRebakeNavMeshMode == kRebakeNavMesh_InProgress);
 	mRebakeNavMeshMode = pRebakeNavMeshMode;
 }
 
@@ -159,7 +175,17 @@ void LLPanelPathfindingRebakeNavmesh::handleAgentState(BOOL pCanRebakeRegion)
 
 void LLPanelPathfindingRebakeNavmesh::handleRebakeNavMeshResponse(bool pResponseStatus)
 {
-	setMode(pResponseStatus ? kRebakeNavMesh_NotAvailable : kRebakeNavMesh_Available);
+	setMode(pResponseStatus ? kRebakeNavMesh_InProgress : kRebakeNavMesh_Default);
+	if (!pResponseStatus)
+	{
+		LLNotificationsUtil::add("PathfindingCannotRebakeNavmesh");
+	}
+
+	LLViewerRegion *currentRegion = gAgent.getRegion();
+	if (currentRegion != NULL)
+	{
+		LLPathfindingManager::getInstance()->requestGetNavMeshForRegion(currentRegion, true);
+	}
 }
 
 void LLPanelPathfindingRebakeNavmesh::handleNavMeshStatus(const LLPathfindingNavMeshStatus &pNavMeshStatus)
@@ -174,6 +200,8 @@ void LLPanelPathfindingRebakeNavmesh::handleNavMeshStatus(const LLPathfindingNav
 			rebakeNavMeshMode = kRebakeNavMesh_Available;
 			break;
 		case LLPathfindingNavMeshStatus::kBuilding :
+			rebakeNavMeshMode = kRebakeNavMesh_InProgress;
+			break;
 		case LLPathfindingNavMeshStatus::kComplete :
 			rebakeNavMeshMode = kRebakeNavMesh_NotAvailable;
 			break;
diff --git a/indra/newview/llpanelpathfindingrebakenavmesh.h b/indra/newview/llpanelpathfindingrebakenavmesh.h
index f81c030c351f2091abd44662104858dab6e2646e..a77cddbc50074fae5f36018a1ce9396c8fed2008 100644
--- a/indra/newview/llpanelpathfindingrebakenavmesh.h
+++ b/indra/newview/llpanelpathfindingrebakenavmesh.h
@@ -59,6 +59,7 @@ class LLPanelPathfindingRebakeNavmesh : public LLPanel
 	{
 		kRebakeNavMesh_Available,
 		kRebakeNavMesh_RequestSent,
+		kRebakeNavMesh_InProgress,
 		kRebakeNavMesh_NotAvailable,
 		kRebakeNavMesh_Default = kRebakeNavMesh_NotAvailable
 	} ERebakeNavMeshMode;
@@ -86,6 +87,7 @@ class LLPanelPathfindingRebakeNavmesh : public LLPanel
 	ERebakeNavMeshMode                       mRebakeNavMeshMode;
 	
 	LLButton*                                mNavMeshRebakeButton;
+	LLButton*                                mNavMeshSendingButton;
 	LLButton*                                mNavMeshBakingButton;
 
 	LLPathfindingNavMesh::navmesh_slot_t     mNavMeshSlot;
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index b09fb7bbe8991e0f94a8f19d738c69ae0a5f7876..ea06e3a321f1dea6e42dda50ae8cbac0cc8227ea 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -5852,6 +5852,18 @@ This area has building disabled. You can&apos;t build or rez objects here.
      />
   </notification>
 
+  <notification
+   icon="alertmodal.tga"
+   name="PathfindingCannotRebakeNavmesh"
+   type="alertmodal">
+    <unique/>
+    You are not allowed to rebake the navmesh at the current time.
+    <usetemplate
+     name="okbutton"
+     yestext="OK"
+     />
+  </notification>
+
   <notification
    icon="notify.tga"
    name="SeeAvatars"
diff --git a/indra/newview/skins/default/xui/en/panel_navmesh_rebake.xml b/indra/newview/skins/default/xui/en/panel_navmesh_rebake.xml
index c7bf91efb47b70035e1987d404b1a783423529eb..ddfba4c43d0234e7a85d5b2da8f8e8ea945b6da3 100644
--- a/indra/newview/skins/default/xui/en/panel_navmesh_rebake.xml
+++ b/indra/newview/skins/default/xui/en/panel_navmesh_rebake.xml
@@ -17,7 +17,19 @@
       top="2"
       visible="false"
       enabled="true"
-      width="113" />
+      width="120" />
+  <button
+      follows="left|bottom"
+      height="19"
+      label="Sending rebake request"
+      layout="topleft"
+      left="10"
+      name="navmesh_btn_sending"
+      tool_tip="Sending rebake request"
+      top="2"
+      visible="false"
+      enabled="false"
+      width="120" />
   <button
       follows="left|bottom"
       height="19"
@@ -25,10 +37,10 @@
       layout="topleft"
       left="10"
       name="navmesh_btn_baking"
-      tool_tip="Region is cleaning up."
+      tool_tip="Region is cleaning."
       top="2"
       visible="false"
       enabled="false"
-      width="113" />
+      width="120" />
 </panel>