diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp
index b1cd68140e145a89b4dd3b161aa347b6c0a739a5..14a25086971b002982a88f2bf1df3917d810f5eb 100755
--- a/indra/newview/llagent.cpp
+++ b/indra/newview/llagent.cpp
@@ -976,7 +976,7 @@ LLHost LLAgent::getRegionHost() const
 	}
 }
 
-boost::signals2::connection LLAgent::addRegionChangedCallback(region_changed_callback_t cb)
+boost::signals2::connection LLAgent::addRegionChangedCallback(const region_changed_signal_t::slot_type& cb)
 {
 	return mRegionChangedSignal.connect(cb);
 }
diff --git a/indra/newview/llagent.h b/indra/newview/llagent.h
index bc003387de9a993fa520f9d4a0b8cb96c9dd4390..0766407494efd06637d9024a9e34fa92045a2deb 100755
--- a/indra/newview/llagent.h
+++ b/indra/newview/llagent.h
@@ -271,13 +271,13 @@ class LLAgent : public LLOldEvents::LLObservable
 	 *       // you may or may not want to remove that callback
 	 * 	 }
 	 */
-	typedef boost::function<void()> region_changed_callback_t;
-	boost::signals2::connection     addRegionChangedCallback(region_changed_callback_t);
+	typedef boost::signals2::signal<void()> region_changed_signal_t;
+
+	boost::signals2::connection     addRegionChangedCallback(const region_changed_signal_t::slot_type& cb);
 	void                            removeRegionChangedCallback(boost::signals2::connection callback);
 
   private:
 	LLViewerRegion	*mRegionp;
-	typedef boost::signals2::signal<void()> region_changed_signal_t;
 	region_changed_signal_t		            mRegionChangedSignal;
 
 	//--------------------------------------------------------------------