Index: binaries/data/mods/public/gui/gamesetup/gamesetup.js
===================================================================
--- binaries/data/mods/public/gui/gamesetup/gamesetup.js	(revision 12697)
+++ binaries/data/mods/public/gui/gamesetup/gamesetup.js	(working copy)
@@ -118,6 +118,9 @@
 	mapFilters.list = getFilters();
 	g_GameAttributes.mapFilter = "Default";
 
+	// Init game speeds
+	initGameSpeedList();
+
 	// Setup controls for host only
 	if (g_IsController)
 	{
@@ -453,6 +456,14 @@
 	}
 }
 
+function initGameSpeedList() {
+	g_GameAttributes.settings.GameSpeed = 1.0;
+	var gameSpeeds = getGUIObjectByName("gameSpeedSelection");
+	gameSpeeds.list = ["Slow", "Normal", "Fast"];
+	gameSpeeds.list_data = [0.5, 1.0, 1.5];
+	gameSpeeds.selected = 1.0;
+}
+
 // Initialise the list control containing all the available maps
 function initMapNameList()
 {
@@ -759,6 +770,26 @@
 	updateGameAttributes();
 }
 
+// Called when user selects a speed from the list
+function selectGameSpeed(speed)
+{
+	// Avoid recursion
+	if (g_IsInGuiUpdate)
+	{
+		return;
+	}
+	
+	// Network clients can't change game speed
+	if (g_IsNetworked && !g_IsController)
+	{
+		return;
+	}
+
+	g_GameAttributes.settings.GameSpeed = speed;
+	
+}
+
+
 function launchGame()
 {
 	if (g_IsNetworked && !g_IsController)
@@ -837,7 +868,6 @@
 		}
 		// Remove extra player data
 		g_GameAttributes.settings.PlayerData = g_GameAttributes.settings.PlayerData.slice(0, numPlayers);
-
 		Engine.StartGame(g_GameAttributes, playerID);
 		Engine.SwitchGuiPage("page_loading.xml", {
 			"attribs": g_GameAttributes,
@@ -845,6 +875,7 @@
 			"playerAssignments": g_PlayerAssignments
 		});
 	}
+	Engine.SetSimRate(+(g_GameAttributes.settings.GameSpeed));
 }
 
 ////////////////////////////////////////////////////////////////////////////////////////////////
@@ -878,6 +909,7 @@
 	var victoryCondition = getGUIObjectByName("victoryCondition");
 	var lockTeams = getGUIObjectByName("lockTeams");
 	var mapSize = getGUIObjectByName("mapSize");
+	var gameSpeed = getGUIObjectByName("gameSpeed");
 	var enableCheats = getGUIObjectByName("enableCheats");
 	
 	var numPlayersText= getGUIObjectByName("numPlayersText");
@@ -885,6 +917,7 @@
 	var revealMapText = getGUIObjectByName("revealMapText");
 	var victoryConditionText = getGUIObjectByName("victoryConditionText");
 	var lockTeamsText = getGUIObjectByName("lockTeamsText");
+	var gameSpeedText = getGUIObjectByName("gameSpeedText");
 	var enableCheatsText = getGUIObjectByName("enableCheatsText");
 	
 	var sizeIdx = (g_MapSizes.tiles.indexOf(mapSettings.Size) != -1 ? g_MapSizes.tiles.indexOf(mapSettings.Size) : g_MapSizes.default);
Index: binaries/data/mods/public/gui/gamesetup/gamesetup.xml
===================================================================
--- binaries/data/mods/public/gui/gamesetup/gamesetup.xml	(revision 12697)
+++ binaries/data/mods/public/gui/gamesetup/gamesetup.xml	(working copy)
@@ -36,7 +36,7 @@
 
 		
 		<!-- Player assignments -->
-		<object size="24 59 100%-440 358" type="image" sprite="BackgroundIndentFillDark" name="playerAssignmentsPannel">
+		<object size="24 59 100%-440 358" type="image" sprite="BackgroundIndentFillDark" name="playerAssignmentsPanel">
 			<object size="0 6 100% 30">
 				<object name="playerNameHeading" type="text" style="CenteredLabelText" size="0 0 25% 100%">Player Name</object>
 				<object name="playerPlacementHeading" type="text" style="CenteredLabelText" size="25%+5 0 55% 100%">Player Placement</object>
@@ -73,7 +73,7 @@
 				</repeat>
 			</object>
 		</object>
-		<object size="24 64 100%-460 358" type="image" sprite="CoverFillDark" name="playerAssignmentsPannelCover" hidden="true"/>
+		<object size="24 64 100%-460 358" type="image" sprite="CoverFillDark" name="playerAssignmentsPanelCover" hidden="true"/>
 		<!-- Map selection -->
 		
 		
@@ -107,7 +107,7 @@
 			<action on="SelectionChange">selectMapFilter(this.list[this.selected]);</action>
 		</object>
 		
-		<object size="10.9% 427 28% 455" name="mapSelectionPannel" z="55">
+		<object size="10.9% 427 28% 455" name="mapSelectionPanel" z="55">
 
 			<object name="mapSelection"
 				style="StoneDropDown"
@@ -120,13 +120,29 @@
 
 		</object>
 		
-		<object size="20 463.8 11% 615" name="enableCheatsDesc" hidden="true">
+
+		<object size="20 463.8 11% 615" name="gameSpeedDesc">
+			<object size="0 0 100% 28">
+				<object size="0 0 100% 100%" type="text" style="RightLabelText">Game Speed:</object>
+			</object>
+		</object>
+
+			<object name="gameSpeedSelection"
+				type="dropdown"
+				style="StoneDropDown"
+				size="10.9% 463.8 28% 491.8"
+				tooltip_style="onscreenToolTip"
+				tooltip="Select game simulation speed.">
+				<action on="SelectionChange">selectGameSpeed(this.list_data[this.selected]);</action>
+			</object>				
+
+		<object size="20 495.8 11% 615" name="enableCheatsDesc" hidden="true">
 			<object size="0 0 100% 32">
 				<object size="0 0 100% 100%" type="text" style="RightLabelText">Cheats:</object>
 			</object>
 		</object>
 			
-		<object size="10.9% 463.8 28% 615">
+		<object size="10.9% 495.8 28% 615">
 			<object size="0 0 100% 32">
 				<object name="enableCheatsText" size="0 0 100% 100%" type="text" style="LeftLabelText" hidden="true"/>
 				<object name="enableCheats" size="0 50%-8 16 50%+8" type="checkbox" style="StoneCrossBox" hidden="true" tooltip_style="onscreenToolTip" tooltip="Toggle the usability of cheats."/>
