diff --git a/indra/newview/app_settings/settings_alchemy.xml b/indra/newview/app_settings/settings_alchemy.xml
index da9b6d8b1bc67531ed2cce983aeeb03c5c92d6ef..dd5eca0002c738f95224a261ddf5a03c08259e3c 100644
--- a/indra/newview/app_settings/settings_alchemy.xml
+++ b/indra/newview/app_settings/settings_alchemy.xml
@@ -464,16 +464,5 @@
       <key>Value</key>
       <integer>1</integer>
     </map>
-    <key>AlchemyShowTeleportScreen</key>
-    <map>
-      <key>Comment</key>
-      <string>Show the progress screen during teleport.</string>
-      <key>Persist</key>
-      <integer>1</integer>
-      <key>Type</key>
-      <string>Boolean</string>
-      <key>Value</key>
-      <integer>1</integer>
-    </map>
   </map>
 </llsd>
diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp
index b8364f78fe19f8236d0d8f3352588ca4a28ecca1..82f20f6ab07daf6cc89a1c07ac34035b05cc12da 100644
--- a/indra/newview/llviewerdisplay.cpp
+++ b/indra/newview/llviewerdisplay.cpp
@@ -437,8 +437,6 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
 	// Display start screen if we're teleporting, and skip render
 	//
 
-	static LLCachedControl<bool> show_tp_screen(gSavedSettings, "AlchemyShowTeleportScreen", true);
-
 	if (gTeleportDisplay)
 	{
 		LL_RECORD_BLOCK_TIME(FTM_TELEPORT_DISPLAY);
@@ -462,64 +460,49 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
 		}
 
 		const std::string& message = gAgent.getTeleportMessage();
-		
 		switch( gAgent.getTeleportState() )
 		{
 		case LLAgent::TELEPORT_PENDING:
 			gTeleportDisplayTimer.reset();
-            if (show_tp_screen)
-            {
-                gViewerWindow->setShowProgress(TRUE);
-                gViewerWindow->setProgressPercent(llmin(teleport_percent, 0.0f));
-                gAgent.setTeleportMessage(LLAgent::sTeleportProgressMessages["pending"]);
-                gViewerWindow->setProgressString(LLAgent::sTeleportProgressMessages["pending"]);
-            }
+			gViewerWindow->setShowProgress(TRUE);
+			gViewerWindow->setProgressPercent(llmin(teleport_percent, 0.0f));
+			gAgent.setTeleportMessage(LLAgent::sTeleportProgressMessages["pending"]);
+			gViewerWindow->setProgressString(LLAgent::sTeleportProgressMessages["pending"]);
 			break;
 
 		case LLAgent::TELEPORT_START:
 			// Transition to REQUESTED.  Viewer has sent some kind
 			// of TeleportRequest to the source simulator
 			gTeleportDisplayTimer.reset();
-            gAgent.setTeleportState(LLAgent::TELEPORT_REQUESTED);
-            if (show_tp_screen)
-            {
-                gViewerWindow->setShowProgress(show_tp_screen);
-                gViewerWindow->setProgressPercent(llmin(teleport_percent, 0.0f));
-                gAgent.setTeleportMessage(LLAgent::sTeleportProgressMessages["requesting"]);
-                gViewerWindow->setProgressString(LLAgent::sTeleportProgressMessages["requesting"]);
-                gViewerWindow->setProgressMessage(gAgent.mMOTD);
-            }
+			gViewerWindow->setShowProgress(TRUE);
+			gViewerWindow->setProgressPercent(llmin(teleport_percent, 0.0f));
+			gAgent.setTeleportState( LLAgent::TELEPORT_REQUESTED );
+			gAgent.setTeleportMessage(
+				LLAgent::sTeleportProgressMessages["requesting"]);
+			gViewerWindow->setProgressString(LLAgent::sTeleportProgressMessages["requesting"]);
+			gViewerWindow->setProgressMessage(gAgent.mMOTD);
 			break;
 
 		case LLAgent::TELEPORT_REQUESTED:
 			// Waiting for source simulator to respond
-            if (show_tp_screen)
-            {
-                gViewerWindow->setProgressPercent(llmin(teleport_percent, 37.5f));
-                gViewerWindow->setProgressString(message);
-            }
+			gViewerWindow->setProgressPercent( llmin(teleport_percent, 37.5f) );
+			gViewerWindow->setProgressString(message);
 			break;
 
 		case LLAgent::TELEPORT_MOVING:
-            if (show_tp_screen)
-            {
-                // Viewer has received destination location from source simulator
-                gViewerWindow->setProgressPercent(llmin(teleport_percent, 75.f));
-                gViewerWindow->setProgressString(message);
-            }
+			// Viewer has received destination location from source simulator
+			gViewerWindow->setProgressPercent( llmin(teleport_percent, 75.f) );
+			gViewerWindow->setProgressString(message);
 			break;
 
 		case LLAgent::TELEPORT_START_ARRIVAL:
 			// Transition to ARRIVING.  Viewer has received avatar update, etc., from destination simulator
 			gTeleportArrivalTimer.reset();
-			gAgent.setTeleportState(LLAgent::TELEPORT_ARRIVING);
-			if (show_tp_screen)
-			{
 				gViewerWindow->setProgressCancelButtonVisible(FALSE, LLTrans::getString("Cancel"));
-				gViewerWindow->setProgressPercent(75.f);
-				gAgent.setTeleportMessage(
-					LLAgent::sTeleportProgressMessages["arriving"]);
-			}
+			gViewerWindow->setProgressPercent(75.f);
+			gAgent.setTeleportState( LLAgent::TELEPORT_ARRIVING );
+			gAgent.setTeleportMessage(
+				LLAgent::sTeleportProgressMessages["arriving"]);
 			gTextureList.mForceResetTextureStats = TRUE;
 			gAgentCamera.resetView(TRUE, TRUE);
 			
@@ -535,19 +518,15 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
 					//LLFirstUse::useTeleport();
 					gAgent.setTeleportState( LLAgent::TELEPORT_NONE );
 				}
-				if (show_tp_screen)
-				{
-					gViewerWindow->setProgressCancelButtonVisible(FALSE, LLTrans::getString("Cancel"));
-					gViewerWindow->setProgressPercent(arrival_fraction * 25.f + 75.f);
-					gViewerWindow->setProgressString(message);
-				}
+				gViewerWindow->setProgressCancelButtonVisible(FALSE, LLTrans::getString("Cancel"));
+				gViewerWindow->setProgressPercent(  arrival_fraction * 25.f + 75.f);
+				gViewerWindow->setProgressString(message);
 			}
 			break;
 
 		case LLAgent::TELEPORT_LOCAL:
 			// Short delay when teleporting in the same sim (progress screen active but not shown - did not
 			// fall-through from TELEPORT_START)
-			// FIXME: Screen hangs when waiting. This shouldn't block.
 			{
 				if( gTeleportDisplayTimer.getElapsedTimeF32() > teleport_local_delay() )
 				{
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_move.xml b/indra/newview/skins/default/xui/en/panel_preferences_move.xml
index c70da68484c5e2316b10eac5a47d771795a5b830..a55c7d1be94021ca89a84527a2d0d57206077136 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_move.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_move.xml
@@ -82,20 +82,10 @@
    follows="left|top"
    height="16"
    label="Appearance"
-   name="appearance_camera_movement"
    layout="topleft"
+   name="appearance_camera_movement"
    tool_tip="Use automatic camera positioning while in edit mode"
    width="242" />
-  <check_box
-     control_name="AlchemyShowTeleportScreen"
-     height="20"
-     follows="left|top"
-     label="Show teleport screen"
-     layout="topleft"
-     left="75"
-     name="show_teleport_screen"
-     width="280"
-     top_pad="5" />
   <icon
 	 follows="left|top"
 	 height="18"