diff --git a/indra/newview/llversioninfo.cpp b/indra/newview/llversioninfo.cpp
index f4b1f2566dc0b486c6df6ef32df64f9982e900ee..4720a989b0d4ddb741a7be344644a9b9673359aa 100644
--- a/indra/newview/llversioninfo.cpp
+++ b/indra/newview/llversioninfo.cpp
@@ -26,8 +26,8 @@
  */
 
 #include "llviewerprecompiledheaders.h"
-#include <iostream>
-#include <sstream>
+#include "llevents.h"
+#include "lleventfilter.h"
 #include "llversioninfo.h"
 #include "stringize.h"
 #include <boost/regex.hpp>
@@ -45,14 +45,19 @@
 //
 
 LLVersionInfo::LLVersionInfo():
+	short_version(STRINGIZE(LL_VIEWER_VERSION_MAJOR << "."
+							<< LL_VIEWER_VERSION_MINOR << "."
+							<< LL_VIEWER_VERSION_PATCH)),
 	// LL_VIEWER_CHANNEL is a macro defined on the compiler command line. The
 	// macro expands to the string name of the channel, but without quotes. We
 	// need to turn it into a quoted string. LL_TO_STRING() does that.
 	mWorkingChannelName(LL_TO_STRING(LL_VIEWER_CHANNEL)),
 	build_configuration(LLBUILD_CONFIG), // set in indra/cmake/BuildVersion.cmake
-	short_version(STRINGIZE(LL_VIEWER_VERSION_MAJOR << "."
-							<< LL_VIEWER_VERSION_MINOR << "."
-							<< LL_VIEWER_VERSION_PATCH))
+	// instantiate an LLEventMailDrop with canonical name to listen for news
+	// from SLVersionChecker
+	mPump{new LLEventMailDrop("relnotes")},
+	// immediately listen on mPump, store arriving URL into mReleaseNotes
+	mStore{new LLStoreListener<std::string>(*mPump, mReleaseNotes)}
 {
 }
 
@@ -67,6 +72,10 @@ void LLVersionInfo::initSingleton()
 	version = STRINGIZE(getShortVersion() << "." << getBuild());
 }
 
+LLVersionInfo::~LLVersionInfo()
+{
+}
+
 S32 LLVersionInfo::getMajor()
 {
 	return LL_VIEWER_VERSION_MAJOR;
@@ -161,3 +170,8 @@ std::string LLVersionInfo::getBuildConfig()
 {
     return build_configuration;
 }
+
+std::string LLVersionInfo::getReleaseNotes()
+{
+    return mReleaseNotes;
+}
diff --git a/indra/newview/llversioninfo.h b/indra/newview/llversioninfo.h
index 78574686972120abe9e5ca04265b523e11135961..02ff0c094aaa96fab6d5d5e5aeeebb52ed9ec46d 100644
--- a/indra/newview/llversioninfo.h
+++ b/indra/newview/llversioninfo.h
@@ -28,9 +28,14 @@
 #ifndef LL_LLVERSIONINFO_H
 #define LL_LLVERSIONINFO_H
 
-#include <string>
 #include "stdtypes.h"
 #include "llsingleton.h"
+#include <string>
+#include <memory>
+
+class LLEventMailDrop;
+template <typename T>
+class LLStoreListener;
 
 ///
 /// This API provides version information for the viewer.  This
@@ -44,6 +49,8 @@ class LLVersionInfo: public LLSingleton<LLVersionInfo>
 	LLSINGLETON(LLVersionInfo);
 	void initSingleton();
 public:
+	~LLVersionInfo();
+
 	/// return the major version number as an integer
 	S32 getMajor();
 
@@ -87,6 +94,10 @@ class LLVersionInfo: public LLSingleton<LLVersionInfo>
     } ViewerMaturity;
     ViewerMaturity getViewerMaturity();
 
+	/// get the release-notes URL, once it becomes available -- until then,
+	/// return empty string
+	std::string getReleaseNotes();
+
 private:
 	std::string version;
 	std::string short_version;
@@ -98,6 +109,14 @@ class LLVersionInfo: public LLSingleton<LLVersionInfo>
 	// This will get reset too.
 	std::string mVersionChannel;
 	std::string build_configuration;
+	std::string mReleaseNotes;
+	// Store unique_ptrs to the next couple things so we don't have to explain
+	// to every consumer of this header file all the details of each.
+	// mPump is the LLEventMailDrop on which we listen for SLVersionChecker to
+	// post the release-notes URL from the Viewer Version Manager.
+	std::unique_ptr<LLEventMailDrop> mPump;
+	// mStore is an adapter that stores the release-notes URL in mReleaseNotes.
+	std::unique_ptr<LLStoreListener<std::string>> mStore;
 };
 
 #endif