diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 3c2949d9ee5c941feaf879ae42479d8b0df4a532..be3357041a1b6155c2e20e3b7816eec1f852345d 100755
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -5514,19 +5514,22 @@ bool handle_special_notification(std::string notificationID, LLSD& llsdBlock)
 	{
 		if (gAgent.isTeen())
 		{
+			gAgent.clearFailedTeleportRequest();
 			maturityLevelNotification = LLNotificationsUtil::add(notificationID+"_KB", llsdBlock);
 			returnValue = true;
 		}
 		else if (gAgent.prefersPG())
 		{
-			if (gAgent.hasRestartableFailedTeleportRequest())
+			if ((LLStringUtil::compareStrings(notificationID, "RegionEntryAccessBlocked") == 0) &&
+				gAgent.hasRestartableFailedTeleportRequest())
 			{
 				maturityLevelNotification = LLNotificationsUtil::add(notificationID+"_ChangeAndReTeleport", llsdBlock, llsdBlock, handle_prompt_for_maturity_level_change_and_reteleport_callback);
 				returnValue = true;
 			}
 			else
 			{
-				maturityLevelNotification = LLNotificationsUtil::add(notificationID+"_ChangeOnly", llsdBlock, llsdBlock, handle_prompt_for_maturity_level_change_callback);
+				gAgent.clearFailedTeleportRequest();
+				maturityLevelNotification = LLNotificationsUtil::add(notificationID+"_Change", llsdBlock, llsdBlock, handle_prompt_for_maturity_level_change_callback);
 				returnValue = true;
 			}
 		}
@@ -5535,19 +5538,22 @@ bool handle_special_notification(std::string notificationID, LLSD& llsdBlock)
 	{
 		if (!gAgent.isAdult())
 		{
+			gAgent.clearFailedTeleportRequest();
 			maturityLevelNotification = LLNotificationsUtil::add(notificationID+"_KB", llsdBlock);
 			returnValue = true;
 		}
 		else if (gAgent.prefersPG() || gAgent.prefersMature())
 		{
-			if (gAgent.hasRestartableFailedTeleportRequest())
+			if ((LLStringUtil::compareStrings(notificationID, "RegionEntryAccessBlocked") == 0) &&
+				gAgent.hasRestartableFailedTeleportRequest())
 			{
 				maturityLevelNotification = LLNotificationsUtil::add(notificationID+"_ChangeAndReTeleport", llsdBlock, llsdBlock, handle_prompt_for_maturity_level_change_and_reteleport_callback);
 				returnValue = true;
 			}
 			else
 			{
-				maturityLevelNotification = LLNotificationsUtil::add(notificationID+"_ChangeOnly", llsdBlock, llsdBlock, handle_prompt_for_maturity_level_change_callback);
+				gAgent.clearFailedTeleportRequest();
+				maturityLevelNotification = LLNotificationsUtil::add(notificationID+"_Change", llsdBlock, llsdBlock, handle_prompt_for_maturity_level_change_callback);
 				returnValue = true;
 			}
 		}
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index fd153aba1fab9b4bfc3076a98376cace4c40015f..d1777371ef287f012885070088231f83e59b7aee 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -4128,7 +4128,7 @@ The region you're trying to visit contains [REGIONMATURITY] content, but your cu
 
   <notification
    icon="alertmodal.tga"
-   name="RegionEntryAccessBlocked_ChangeOnly"
+   name="RegionEntryAccessBlocked_Change"
    type="alertmodal">
     <tag>fail</tag>
     <tag>confirm</tag>