@@ -7,7 +7,7 @@ function GameMenuFrame_OnShow(self)
 end
 
 function GameMenuFrame_UpdateVisibleButtons(self)
-	local height = 270;
+	local height = 292;
 	if ( IsMacClient() ) then
 		height = height + 20;
 		GameMenuButtonMacOptions:Show();
@@ -20,17 +20,30 @@ function GameMenuFrame_UpdateVisibleButt
 	if ( C_StorePublic.IsEnabled() ) then
 		height = height + 20;
 		GameMenuButtonStore:Show();
-		GameMenuButtonOptions:SetPoint("TOP", GameMenuButtonStore, "BOTTOM", 0, -16);
+		GameMenuButtonWhatsNew:SetPoint("TOP", GameMenuButtonStore, "BOTTOM", 0, -1);
 	else
 		GameMenuButtonStore:Hide();
-		GameMenuButtonOptions:SetPoint("TOP", GameMenuButtonHelp, "BOTTOM", 0, -16);
+		GameMenuButtonWhatsNew:SetPoint("TOP", GameMenuButtonHelp, "BOTTOM", 0, -1);
 	end
 
-	if ( GameMenuButtonRatings:IsShown() ) then
-		height = height + 20;
-		GameMenuButtonLogout:SetPoint("TOP", GameMenuButtonRatings, "BOTTOM", 0, -16);
-	else
+	if ( not GameMenuButtonRatings:IsShown() and GetNumAddOns() == 0 ) then
 		GameMenuButtonLogout:SetPoint("TOP", GameMenuButtonMacros, "BOTTOM", 0, -16);
+	else
+		if ( GetNumAddOns() ~= 0 ) then
+			height = height + 20;
+			GameMenuButtonLogout:SetPoint("TOP", GameMenuButtonAddons, "BOTTOM", 0, -16);
+		end
+		
+		if ( GameMenuButtonRatings:IsShown() ) then
+			height = height + 20;
+			GameMenuButtonLogout:SetPoint("TOP", GameMenuButtonRatings, "BOTTOM", 0, -16);
+		end
+	end
+	
+	if ( IsCharacterNewlyBoosted() ) then
+		GameMenuButtonWhatsNew:SetText(GAMEMENU_BOOST_BUTTON);
+	else
+		GameMenuButtonWhatsNew:SetText(GAMEMENU_NEW_BUTTON);
 	end
 
 	self:SetHeight(height);