diff --git a/indra/newview/llvieweraudio.cpp b/indra/newview/llvieweraudio.cpp
index 2ef159ff318cc877597a487dfbbc278ef06e997b..7ac0d3aeaabdf99b51102b0c155383aaf602fb97 100644
--- a/indra/newview/llvieweraudio.cpp
+++ b/indra/newview/llvieweraudio.cpp
@@ -41,6 +41,7 @@
 #include "llstartup.h"
 #include "llviewerparcelmgr.h"
 #include "llparcel.h"
+#include "llviewermessage.h"
 
 /////////////////////////////////////////////////////////
 
@@ -56,6 +57,8 @@ LLViewerAudio::LLViewerAudio() :
 		setTeleportFailedCallback(boost::bind(&LLViewerAudio::onTeleportFailed, this));
 	mTeleportFinishedConnection = LLViewerParcelMgr::getInstance()->
 		setTeleportFinishedCallback(boost::bind(&LLViewerAudio::onTeleportFinished, this, _1, _2));
+	mTeleportStartedConnection = LLViewerMessage::getInstance()->
+		setTeleportStartedCallback(boost::bind(&LLViewerAudio::onTeleportStarted, this));
 }
 
 LLViewerAudio::~LLViewerAudio()
@@ -249,6 +252,11 @@ F32 LLViewerAudio::getFadeVolume()
 	return fade_volume;
 }
 
+void LLViewerAudio::onTeleportStarted()
+{
+llwarns << "DBG teleport started" << llendl;
+}
+
 void LLViewerAudio::onTeleportFailed()
 {
 	// Calling audio_update_volume makes sure that the music stream is properly set to be restored to
diff --git a/indra/newview/llvieweraudio.h b/indra/newview/llvieweraudio.h
index 38c977c605a2e06a611c2d57e76a89ef52eb6513..8c302c65492456033c91401557c2474472321be9 100644
--- a/indra/newview/llvieweraudio.h
+++ b/indra/newview/llvieweraudio.h
@@ -80,13 +80,14 @@ class LLViewerAudio : public LLSingleton<LLViewerAudio>
 	bool mWasPlaying;
 	boost::signals2::connection	mTeleportFailedConnection;
 	boost::signals2::connection	mTeleportFinishedConnection;
+	boost::signals2::connection mTeleportStartedConnection;
 
 	void registerIdleListener();
 	void deregisterIdleListener() { mIdleListnerActive = false; };
 	void startFading();
 	void onTeleportFailed();
 	void onTeleportFinished(const LLVector3d& pos, const bool& local);
-
+	void onTeleportStarted();
 };
 
 #endif //LL_VIEWER_H
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 3c6770df43fd84747e6f904f473b4ae7cce1b9e6..33ce8a79e113c79bffe74a4691f35b99146e7384 100755
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -3441,6 +3441,11 @@ void process_teleport_start(LLMessageSystem *msg, void**)
 	}
 }
 
+boost::signals2::connection LLViewerMessage::setTeleportStartedCallback(teleport_started_callback_t cb)
+{
+	return mTeleportStartedSignal.connect(cb);
+}
+
 void process_teleport_progress(LLMessageSystem* msg, void**)
 {
 	LLUUID agent_id;
diff --git a/indra/newview/llviewermessage.h b/indra/newview/llviewermessage.h
index d8acd99953844cb18ead8aca25b722a99e6ed67e..e4fc77c06dfa502d0e0d051c828040b6cb259b2b 100644
--- a/indra/newview/llviewermessage.h
+++ b/indra/newview/llviewermessage.h
@@ -204,6 +204,16 @@ bool highlight_offered_object(const LLUUID& obj_id);
 void set_dad_inventory_item(LLInventoryItem* inv_item, const LLUUID& into_folder_uuid);
 void set_dad_inbox_object(const LLUUID& object_id);
 
+class LLViewerMessage : public  LLSingleton<LLViewerMessage>
+{
+public:
+	typedef boost::function<void()> teleport_started_callback_t;
+	typedef boost::signals2::signal<void()> teleport_started_signal_t;
+	boost::signals2::connection setTeleportStartedCallback(teleport_started_callback_t cb);
+
+protected:
+	teleport_started_signal_t	mTeleportStartedSignal;
+};
 
 class LLOfferInfo : public LLNotificationResponderInterface
 {
@@ -252,5 +262,3 @@ class LLOfferInfo : public LLNotificationResponderInterface
 void process_feature_disabled_message(LLMessageSystem* msg, void**);
 
 #endif
-
-