diff --git a/indra/newview/llpanelteleporthistory.cpp b/indra/newview/llpanelteleporthistory.cpp
index 2c3f76f5462d666904beb06122b38224ccaf8a8b..d3543daff082defd48068ea6a8cc6e9c3192c920 100644
--- a/indra/newview/llpanelteleporthistory.cpp
+++ b/indra/newview/llpanelteleporthistory.cpp
@@ -389,6 +389,7 @@ LLTeleportHistoryPanel::~LLTeleportHistoryPanel()
 {
 	LLTeleportHistoryFlatItemStorage::instance().purge();
 	delete mGearMenuHandle.get();
+	mTeleportHistoryChangedConnection.disconnect();
 }
 
 BOOL LLTeleportHistoryPanel::postBuild()
diff --git a/indra/newview/llteleporthistory.cpp b/indra/newview/llteleporthistory.cpp
index 0d8b45db1fe52111b4f3729690ebd4231945ef54..50a088b79979c260f6bfaff291ef8c9b9296ae49 100644
--- a/indra/newview/llteleporthistory.cpp
+++ b/indra/newview/llteleporthistory.cpp
@@ -56,7 +56,8 @@ const std::string& LLTeleportHistoryItem::getTitle() const
 LLTeleportHistory::LLTeleportHistory():
 	mCurrentItem(-1),
 	mRequestedItem(-1),
-	mGotInitialUpdate(false)
+	mGotInitialUpdate(false),
+	mTeleportHistoryStorage(NULL)
 {
 	mTeleportFinishedConn = LLViewerParcelMgr::getInstance()->
 		setTeleportFinishedCallback(boost::bind(&LLTeleportHistory::updateCurrentLocation, this, _1));
@@ -115,6 +116,10 @@ void LLTeleportHistory::handleLoginComplete()
 
 void LLTeleportHistory::updateCurrentLocation(const LLVector3d& new_pos)
 {
+	if (!mTeleportHistoryStorage)
+	{
+		mTeleportHistoryStorage = LLTeleportHistoryStorage::getInstance();
+	}
 	if (mRequestedItem != -1) // teleport within the history in progress?
 	{
 		mCurrentItem = mRequestedItem;
@@ -152,7 +157,7 @@ void LLTeleportHistory::updateCurrentLocation(const LLVector3d& new_pos)
 		if (mCurrentItem < 0 || mCurrentItem >= (int) mItems.size()) // sanity check
 		{
 			llwarns << "Invalid current item. (this should not happen)" << llendl;
-			llassert(!"Invalid current teleport histiry item");
+			llassert(!"Invalid current teleport history item");
 			return;
 		}
 		LLVector3 new_pos_local = gAgent.getPosAgentFromGlobal(new_pos);
diff --git a/indra/newview/llteleporthistory.h b/indra/newview/llteleporthistory.h
index e45dc28f9b4bc42fa695f24f39502427174ab246..e9c29c39bf3e945d91a57f4260d8ad705919f56d 100644
--- a/indra/newview/llteleporthistory.h
+++ b/indra/newview/llteleporthistory.h
@@ -33,6 +33,7 @@
 #include <string>
 #include <boost/function.hpp>
 #include <boost/signals2.hpp>
+#include "llteleporthistorystorage.h"
 
 
 /**
@@ -210,6 +211,8 @@ class LLTeleportHistory: public LLSingleton<LLTeleportHistory>
 	 */
 	bool					mGotInitialUpdate;
 	
+	LLTeleportHistoryStorage*	mTeleportHistoryStorage;
+
 	/**
 	 * Signal emitted when the history gets changed.
 	 * 
diff --git a/indra/newview/llteleporthistorystorage.h b/indra/newview/llteleporthistorystorage.h
index 6cae0a345477ebbfeb69e988923a4ac3f91fce1a..cf4c85a9910106a91c9f69be4cfe62dea049cb0a 100644
--- a/indra/newview/llteleporthistorystorage.h
+++ b/indra/newview/llteleporthistorystorage.h
@@ -93,9 +93,6 @@ class LLTeleportHistoryStorage: public LLSingleton<LLTeleportHistoryStorage>
 	void removeItem(S32 idx);
 
 	void save();
-	void load();
-
-	void dump() const;
 
 	/**
 	 * Set a callback to be called upon history changes.
@@ -113,6 +110,9 @@ class LLTeleportHistoryStorage: public LLSingleton<LLTeleportHistoryStorage>
 
 private:
 
+	void load();
+	void dump() const;
+	
 	void onTeleportHistoryChange();
 	bool compareByTitleAndGlobalPos(const LLTeleportHistoryPersistentItem& a, const LLTeleportHistoryPersistentItem& b);
 
diff --git a/indra/newview/lltracker.cpp b/indra/newview/lltracker.cpp
index 983108391f8fa904156fbd018a8e08576be79d3c..efe9bb8da7cdeb27f0ea6c1c16959ee1f77a358c 100644
--- a/indra/newview/lltracker.cpp
+++ b/indra/newview/lltracker.cpp
@@ -53,10 +53,12 @@
 #include "llinventorymodel.h"
 #include "llinventoryobserver.h"
 #include "lllandmarklist.h"
+#include "llprogressview.h"
 #include "llsky.h"
 #include "llui.h"
 #include "llviewercamera.h"
 #include "llviewerinventory.h"
+#include "llviewerwindow.h"
 #include "llworld.h"
 #include "llworldmapview.h"
 #include "llviewercontrol.h"
@@ -111,6 +113,8 @@ void LLTracker::drawHUDArrow()
 {
 	if (!gSavedSettings.getBOOL("RenderTrackerBeacon")) return;
 
+	if (gViewerWindow->getProgressView()->getVisible()) return;
+
 	static LLUIColor map_track_color = LLUIColorTable::instance().getColor("MapTrackColor", LLColor4::white);
 	
 	/* tracking autopilot destination has been disabled 
diff --git a/indra/newview/skins/default/xui/en/floater_moveview.xml b/indra/newview/skins/default/xui/en/floater_moveview.xml
index b9881e4347368d27d4312efe2a8d384f07917a2e..e96039a3e153fa16d7f3db583011a08be5421308 100644
--- a/indra/newview/skins/default/xui/en/floater_moveview.xml
+++ b/indra/newview/skins/default/xui/en/floater_moveview.xml
@@ -14,7 +14,7 @@
  help_topic="move_floater"
  save_rect="true"
  save_visibility="true"
- save_dock_state="true"
+ single_instance="true"
  chrome="true"
  title="MOVE"
  width="133">