diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi
index 3ea7897501fd728f811944528cf1d19e56db9fd8..49ae58d53a36ff7bda49cb5ff249d0d9bd70d641 100644
--- a/indra/newview/installers/windows/installer_template.nsi
+++ b/indra/newview/installers/windows/installer_template.nsi
@@ -29,6 +29,7 @@ RequestExecutionLevel admin	; on Vista we must be admin because we write to Prog
 ;; (these files are in the same place as the nsi template but the python script generates a new nsi file in the 
 ;; application directory so we have to add a path to these include files)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+!include "%%SOURCE%%\installers\windows\lang_da.nsi"
 !include "%%SOURCE%%\installers\windows\lang_de.nsi"
 !include "%%SOURCE%%\installers\windows\lang_en-us.nsi"
 !include "%%SOURCE%%\installers\windows\lang_es.nsi"
@@ -37,18 +38,21 @@ RequestExecutionLevel admin	; on Vista we must be admin because we write to Prog
 !include "%%SOURCE%%\installers\windows\lang_it.nsi"
 !include "%%SOURCE%%\installers\windows\lang_ko.nsi"
 !include "%%SOURCE%%\installers\windows\lang_nl.nsi"
+!include "%%SOURCE%%\installers\windows\lang_pl.nsi"
 !include "%%SOURCE%%\installers\windows\lang_pt-br.nsi"
 !include "%%SOURCE%%\installers\windows\lang_zh.nsi"
 
 # *TODO: Move these into the language files themselves
+LangString LanguageCode ${LANG_DANISH}   "da"
 LangString LanguageCode ${LANG_GERMAN}   "de"
-LangString LanguageCode ${LANG_ENGLISH}  "en"
+Langstring LanguageCode ${LANG_ENGLISH}  "en"
 LangString LanguageCode ${LANG_SPANISH}  "es"
 LangString LanguageCode ${LANG_FRENCH}   "fr"
 LangString LanguageCode ${LANG_JAPANESE} "ja"
 LangString LanguageCode ${LANG_ITALIAN}  "it"
 LangString LanguageCode ${LANG_KOREAN}   "ko"
 LangString LanguageCode ${LANG_DUTCH}    "nl"
+LangString LanguageCode ${LANG_POLISH}   "da"
 LangString LanguageCode ${LANG_PORTUGUESEBR} "pt"
 LangString LanguageCode ${LANG_SIMPCHINESE}  "zh"
 
diff --git a/indra/newview/installers/windows/lang_da.nsi b/indra/newview/installers/windows/lang_da.nsi
new file mode 100644
index 0000000000000000000000000000000000000000..0c832e8ba99c961676599f65cbe86c125b5eb5a2
Binary files /dev/null and b/indra/newview/installers/windows/lang_da.nsi differ
diff --git a/indra/newview/installers/windows/lang_pl.nsi b/indra/newview/installers/windows/lang_pl.nsi
new file mode 100644
index 0000000000000000000000000000000000000000..191bae475551401b328eb21cfee50b5bd2d40100
Binary files /dev/null and b/indra/newview/installers/windows/lang_pl.nsi differ
diff --git a/indra/newview/installers/windows/language_menu.nsi b/indra/newview/installers/windows/language_menu.nsi
index 988f452dea0cb8292d045ad590783d529012479f..fef8d40c69bb52e43992e39ecf028062cebc51cb 100644
Binary files a/indra/newview/installers/windows/language_menu.nsi and b/indra/newview/installers/windows/language_menu.nsi differ
diff --git a/indra/newview/llslurl.cpp b/indra/newview/llslurl.cpp
index 0308f5e632a3e0e35c1648337bf55c206a1c646a..4cf1df165555ce3098f91a3c64902d5e3ce3e479 100644
--- a/indra/newview/llslurl.cpp
+++ b/indra/newview/llslurl.cpp
@@ -44,7 +44,6 @@ const char* LLSLURL::SLURL_COM		         = "slurl.com";
 // version is required also.
 
 const char* LLSLURL::WWW_SLURL_COM				 = "www.slurl.com";
-const char* LLSLURL::SECONDLIFE_COM				 = "secondlife.com";
 const char* LLSLURL::MAPS_SECONDLIFE_COM		 = "maps.secondlife.com";
 const char* LLSLURL::SLURL_X_GRID_LOCATION_INFO_SCHEME = "x-grid-location-info";
 const char* LLSLURL::SLURL_APP_PATH              = "app";
@@ -183,15 +182,6 @@ LLSLURL::LLSLURL(const std::string& slurl)
 		   (slurl_uri.scheme() == LLSLURL::SLURL_HTTPS_SCHEME) || 
 		   (slurl_uri.scheme() == LLSLURL::SLURL_X_GRID_LOCATION_INFO_SCHEME))
 		{
-			// *HACK: ignore http://secondlife.com/ URLs so that we can use
-			// http://secondlife.com/app/ redirect URLs
-			// This is only necessary while the server returns Release Note
-			// urls using this format rather that pointing to the wiki
-			if ((slurl_uri.scheme() == LLSLURL::SLURL_HTTP_SCHEME ||
-				 slurl_uri.scheme() == LLSLURL::SLURL_HTTPS_SCHEME) &&
-				slurl_uri.hostName() == LLSLURL::SECONDLIFE_COM)
-			  return;
-
 		    // We're dealing with either a Standalone style slurl or slurl.com slurl
 		  if ((slurl_uri.hostName() == LLSLURL::SLURL_COM) ||
 		      (slurl_uri.hostName() == LLSLURL::WWW_SLURL_COM) || 
@@ -202,6 +192,17 @@ LLSLURL::LLSLURL(const std::string& slurl)
 			}
 		    else
 			{
+				// Don't try to match any old http://<host>/ URL as a SLurl.
+				// SLE SLurls will have the grid hostname in the URL, so only
+				// match http URLs if the hostname matches the grid hostname
+				// (or its a slurl.com or maps.secondlife.com URL).
+				if ((slurl_uri.scheme() == LLSLURL::SLURL_HTTP_SCHEME ||
+					 slurl_uri.scheme() == LLSLURL::SLURL_HTTPS_SCHEME) &&
+					slurl_uri.hostName() != LLGridManager::getInstance()->getGrid())
+				{
+					return;
+				}
+
 				// As it's a Standalone grid/open, we will always have a hostname, as Standalone/open  style
 				// urls are properly formed, unlike the stinky maingrid style
 				mGrid = slurl_uri.hostName();
diff --git a/indra/newview/tests/llslurl_test.cpp b/indra/newview/tests/llslurl_test.cpp
index b5adb217fd629a0fc8585e719f1e3fb0ae4657d4..40425a5caff09685f453c26b2e04de52d415cd78 100644
--- a/indra/newview/tests/llslurl_test.cpp
+++ b/indra/newview/tests/llslurl_test.cpp
@@ -150,6 +150,7 @@ namespace tut
 		ensure_equals(" slurl, region + coords", slurl.getSLURLString(), 
 					  "http://maps.secondlife.com/secondlife/my%20region/1/2/3");	
 		
+		LLGridManager::getInstance()->setGridChoice("my.grid.com");		
 		slurl = LLSLURL("https://my.grid.com/region/my%20region/1/2/3");
 		ensure_equals("grid slurl, region + coords - type", slurl.getType(), LLSLURL::LOCATION);
 		ensure_equals("grid slurl, region + coords", slurl.getSLURLString(), 
@@ -206,6 +207,7 @@ namespace tut
 		ensure_equals("region" , "myregion", slurl.getRegion());
 		ensure_equals("grid4", "util.aditi.lindenlab.com", slurl.getGrid());		
 		
+		LLGridManager::getInstance()->setGridChoice("my.grid.com");
 		slurl = LLSLURL("https://my.grid.com/app/foo/bar?12345");
 		ensure_equals("app", slurl.getType(), LLSLURL::APP);		
 		ensure_equals("appcmd", slurl.getAppCmd(), "foo");
@@ -246,6 +248,7 @@ namespace tut
 	template<> template<>
 	void slurlTestObject::test<3>()
 	{
+		LLGridManager::getInstance()->setGridChoice("my.grid.com");		
 		LLSLURL slurl = LLSLURL("https://my.grid.com/region/my%20region/1/2/3");
 		ensure_equals("login string", slurl.getLoginString(), "uri:my region&amp;1&amp;2&amp;3");
 		ensure_equals("location string", slurl.getLocationString(), "my region/1/2/3");