* @param c       index/number to specify a character
	 * @param client  the client which is connected
	 */
	private boolean handle_login(final Account account, final Integer c, final Client client) {
		debug("LOGIN HANDLER");
		
		boolean success = false;
		boolean can_login = false;
		
		String message = "";
		
		final List<Player> characters = account.getCharacters();
		
		Player player;
		
		try {
			player = characters.get(c);
		}
		catch(final IndexOutOfBoundsException ioobe) {
			System.out.println("--- Stack Trace ---");
			ioobe.printStackTrace();
			
			player = null;
		}

		if (player != null) {
			if (account.getPlayer() != player) {
				// Open Mode
				if (mode == GameMode.NORMAL) {
					can_login = true;
				}
				// Wizard-Only Mode
				else if (mode == GameMode.WIZARD) {
					boolean isWizard = (player.getAccess() == Constants.WIZARD); 
					
					if ( isWizard ) can_login = true;
					else            message = "Sorry, only Wizards are allowed to login at this time.";
				}
				else if (mode == GameMode.MAINTENANCE) {
					message = "Sorry, the mud is currently in maintenance mode.";
				}
				else {
					message = "Sorry, you cannot connect to the mud at this time. Please try again later.";
				}
				
				if( can_login ) {
					init_conn(player, client, false);
					success = true;
				}
				else send(message, client);
			}
			else {
				send("That player is already in use!", client);
			}
		}
		else {
			send("No such player!", client);
		}
		
		return success;
	}