Index: binaries/data/mods/public/gui/lobby/prelobby.js
===================================================================
--- binaries/data/mods/public/gui/lobby/prelobby.js	(revision 14984)
+++ binaries/data/mods/public/gui/lobby/prelobby.js	(working copy)
@@ -61,7 +61,6 @@
 		feedback.caption = translate("Passwords do not match");
 		Engine.GetGUIObjectByName("connectPassword").caption = "";
 		Engine.GetGUIObjectByName("registerPasswordAgain").caption = "";
-		switchRegister();
 		return;
 	}
 
@@ -79,13 +78,11 @@
 		lobbyStop();
 		Engine.GetGUIObjectByName("pageRegister").hidden = false;
 		Engine.GetGUIObjectByName("pageConnect").hidden = true;
-		Engine.GetGUIObjectByName("connect").enabled = false;
 	}
 	else
 	{
 		Engine.GetGUIObjectByName("pageRegister").hidden = true;
 		Engine.GetGUIObjectByName("pageConnect").hidden = false;
-		Engine.GetGUIObjectByName("connect").enabled = true;
 	}
 }
 
@@ -125,6 +122,16 @@
 		connectButton.enabled = true;
 		registerButton.enabled = true;
 	}
+
+	if (connectButton.enabled)
+		connectButton.tooltip = translate("Connect to the lobby");
+	else
+		connectButton.tooltip = translate("You need to enter a valid username and password to enter the lobby");
+	if (registerButton.enabled)
+		registerButton.tooltip = translate("Register a new accout and connect to the lobby");
+	else
+		registerButton.tooltip = translate("You need to enter a valid username, password and password verification to register a lobby account");
+
 	// If the password hasn't been entered again, we can't complete registation.
 	if (!pageRegisterHidden && !passwordAgain)
 		registerButton.enabled = false;
Index: binaries/data/mods/public/gui/lobby/prelobby.xml
===================================================================
--- binaries/data/mods/public/gui/lobby/prelobby.xml	(revision 14984)
+++ binaries/data/mods/public/gui/lobby/prelobby.xml	(working copy)
@@ -8,7 +8,7 @@
 	<!-- Add a translucent black background to fade out the menu page -->
 	<object type="image" z="0" sprite="ModernFade"/>
 
-	<object name="dialog" type="image" style="ModernDialog" size="50%-190 50%-120 50%+190 50%+120">
+	<object name="dialog" type="image" style="ModernDialog" size="50%-210 50%-150 50%+210 50%+150">
 
 		<action on="Tick">
 			onTick();
@@ -24,74 +24,94 @@
 			<translatableAttribute id="caption">Multiplayer Lobby</translatableAttribute>
 		</object>
 
-		<object name="pageConnect" size="0 32 100% 100%">
-			<object type="text" size="0 0 400 30" style="ModernLabelText" text_align="center">
-				<translatableAttribute id="caption">Connect to the game lobby</translatableAttribute>
-			</object>
-			<object name="connectUsernameLabel" type="text" size="50 40 125 70" style="ModernLabelText" text_align="right">
+		<object name="userName" size="0 100 100% 130">
+			<object name="connectUsernameLabel" type="text" size="10 0 50%-10 30" style="ModernLabelText" text_align="right">
 				<translatableAttribute id="caption">Login:</translatableAttribute>
 			</object>
-			<object name="connectUsername" type="input" size="135 40 100%-50 64" style="ModernInput">
+			<object name="connectUsername" type="input" size="50% 0 100%-50 24" style="ModernInput">
 				<action on="Load">
 					this.caption = Engine.ConfigDB_GetValue("user", "lobby.login");
 				</action>
 			</object>
-			<object name="connectPasswordLabel" type="text" size="50 80 125 110" style="ModernLabelText" text_align="right">
+		</object>
+		<object name="password" size="0 130 100% 160">
+			<object name="connectPasswordLabel" type="text" size="10 0 50%-10 30" style="ModernLabelText" text_align="right">
 				<translatableAttribute id="caption">Password:</translatableAttribute>
 			</object>
-			<object name="connectPassword" type="input" size="135 80 100%-50 104" style="ModernInput" mask="true" mask_char="*">
+			<object name="connectPassword" type="input" size="50% 0 100%-50 24" style="ModernInput" mask="true" mask_char="*">
 				<action on="Load">
 					// We only show 10 characters to make it look decent.
 					this.caption = Engine.ConfigDB_GetValue("user", "lobby.password").substring(0, 10);
 				</action>
 				<action on="Press">
-					lobbyStart();
+					if (Engine.GetGUIObjectByName("pageRegister").hidden)
+						lobbyStart();
 				</action>
 			</object>
 		</object>
-		<object name="pageRegister" size="0 32 100% 100%" hidden="true">
-			<object type="text" style="ModernLabelText" size="0 0 400 30" text_align="center">
+		<!-- Feedback -->
+		<object name="feedback" type="text" size="50 200 100%-50 240" style="ModernLabelText" textcolor="red" text_align="center"/>
+
+		<!-- CONTEXT SENSITIVE PARTS -->
+		<!-- Context part -->
+		<object name="pageConnect" size="0 0 100% 100%">
+			<object type="text" size="0 30 400 60" style="ModernLabelText" text_align="center">
+				<translatableAttribute id="caption">Connect to the game lobby, or</translatableAttribute>
+			</object>
+			<!-- Go to register page -->
+			<object name="toRegisterPage" type="button" size="50 60 100%-50 84" style="StoneButton">
+				<translatableAttribute id="caption">Create new account</translatableAttribute>
+				<translatableAttribute id="tooltip">Need a new account? Register here</translatableAttribute>
+				<action on="Press">
+					switchRegister();
+				</action>
+			</object>
+			<!-- Cancel -->
+			<object type="button" size="18 100%-45 126 100%-17" style="StoneButton">
+				<translatableAttribute id="caption">Cancel</translatableAttribute>
+				<translatableAttribute id="tooltip">Close this window</translatableAttribute>
+				<action on="Press">
+					lobbyStop();
+					Engine.PopGuiPage();
+				</action>
+			</object>
+			<!-- Connect -->
+			<object name="connect" type="button" size="254 100%-45 100%-18 100%-17" style="StoneButton">
+				<translatableAttribute id="caption">Connect</translatableAttribute>
+				<action on="Press">
+					lobbyStart()
+				</action>
+			</object>
+		</object>
+		<!-- Register part -->
+		<object name="pageRegister" size="0 0 100% 100%" hidden="true">
+			<object type="text" style="ModernLabelText" size="0 30 400 60" text_align="center">
 				<translatableAttribute id="caption">Registration</translatableAttribute>
 			</object>
-			<object type="text" size="50 40 170 70" style="ModernLabelText" text_align="right">
+			<object type="text" size="10 160 50%-10 190" style="ModernLabelText" text_align="right">
 				<translatableAttribute id="caption">Password again:</translatableAttribute>
 			</object>
-			<object name="registerPasswordAgain" type="input" size="180 40 100%-50 64" style="ModernInput" mask="true" mask_char="*">
+			<object name="registerPasswordAgain" type="input" size="50% 160 100%-50 184" style="ModernInput" mask="true" mask_char="*">
 				<action on="Press">
 					lobbyStartRegister()
 				</action>
 			</object>
-		</object>
-		<object name="feedback" type="text" size="50 150 100%-50 190" style="ModernLabelText" textcolor="red" text_align="center"/>
-		<object type="button" size="18 100%-45 126 100%-17" style="StoneButton">
-			<translatableAttribute id="caption">Cancel</translatableAttribute>
-			<action on="Press">
-				if (Engine.GetGUIObjectByName("pageRegister").hidden)
-				{
-					lobbyStop();
-					Engine.PopGuiPage();
-				}
-				else
+			<!-- Cancel -->
+			<object type="button" size="18 100%-45 126 100%-17" style="StoneButton">
+				<translatableAttribute id="caption">Cancel</translatableAttribute>
+				<translatableAttribute id="tooltip">Back to the login screen</translatableAttribute>
+				<action on="Press">
 					switchRegister();
-			</action>
-		</object>
-		<object name="register" type="button" size="136 100%-45 244 100%-17" style="StoneButton">
-			<translatableAttribute id="caption">Register</translatableAttribute>
-			<action on="Press">
-				if (Engine.GetGUIObjectByName("pageRegister").hidden)
-				{
-					switchRegister();
-				}
-				else
+				</action>
+			</object>
+			<!-- Register -->
+			<object name="register" type="button" size="254 100%-45 100%-18 100%-17" style="StoneButton">
+				<translatableAttribute id="caption">Register</translatableAttribute>
+				<action on="Press">
 					lobbyStartRegister()
-			</action>
+				</action>
+			</object>
 		</object>
-		<object name="connect" type="button" size="254 100%-45 100%-18 100%-17" style="StoneButton">
-			<translatableAttribute id="caption">Connect</translatableAttribute>
-			<action on="Press">
-				lobbyStart();
-			</action>
-		</object>
 
 	</object>
 
