Index: src/ai/configuration.cpp
===================================================================
--- src/ai/configuration.cpp	(revision 42516)
+++ src/ai/configuration.cpp	(working copy)
@@ -58,6 +58,7 @@
 {
 	ai_configurations_.clear();
 	era_ai_configurations_.clear();
+	era_default_config_ = config();
 	well_known_aspects.clear();
 	well_known_aspects.push_back(well_known_aspect("aggression"));
 	well_known_aspects.push_back(well_known_aspect("attack_depth"));
@@ -118,6 +119,7 @@
 void configuration::add_era_ai_from_config(const config &era)
 {
 	era_ai_configurations_.clear();
+	era_default_config_ = config();
 	foreach (const config &ai_configuration, era.child_range("ai")) {
 		const std::string &id = ai_configuration["id"];
 		if (id.empty()){
@@ -129,6 +131,10 @@
 			ERR_AI_CONFIGURATION << "skipped AI config due to duplicate id [" << id << "]. Config contains:"<< std::endl << ai_configuration << std::endl;
 			continue;
 		}
+		bool is_default = utils::string_bool(ai_configuration["use_as_default"],false);
+		if (is_default){
+			era_default_config_ = ai_configuration;
+		}
 
 		description desc;
 		desc.id=id;
@@ -171,6 +177,7 @@
 configuration::description_map configuration::ai_configurations_ = configuration::description_map();
 configuration::description_map configuration::era_ai_configurations_ = configuration::description_map();
 config configuration::default_config_ = config();
+config configuration::era_default_config_ = config();
 
 bool configuration::get_side_config_from_file(const std::string& file, config& cfg ){
 	try {
@@ -185,9 +192,18 @@
 	return cfg;//in boolean context
 }
 
+const std::string configuration::get_default_ai_algorithm()
+{
+	if (era_default_config_.empty())
+		return "default";
+	return era_default_config_["id"];
+}
+
 const config& configuration::get_default_ai_parameters()
 {
-	return default_config_;
+	if (era_default_config_.empty())
+		return default_config_;
+	return era_default_config_;
 }
 
 
Index: src/ai/configuration.hpp
===================================================================
--- src/ai/configuration.hpp	(revision 42516)
+++ src/ai/configuration.hpp	(working copy)
@@ -78,6 +78,10 @@
 	 */
 	static const config& get_default_ai_parameters();
 
+	/**
+	 * Return the name of the default algorithm
+	 */
+	static const std::string get_default_ai_algorithm();
 
 	/**
 	 * Return the config for a specified ai
@@ -159,6 +163,7 @@
 	static description_map ai_configurations_;
 	static description_map era_ai_configurations_;
 	static config default_config_;
+	static config era_default_config_;
 
 };
 
Index: src/multiplayer_connect.cpp
===================================================================
--- src/multiplayer_connect.cpp	(revision 42516)
+++ src/multiplayer_connect.cpp	(working copy)
@@ -168,10 +168,11 @@
 
 	update_faction_combo();
 
+	const std::string default_ai = ai::configuration::get_default_ai_algorithm();
 	if (const config &ai = cfg_.child("ai"))
-		ai_algorithm_ = lexical_cast_default<std::string>(ai["ai_algorithm"], "default");
+		ai_algorithm_ = lexical_cast_default<std::string>(ai["ai_algorithm"], default_ai);
 	else
-		ai_algorithm_ = "default";
+		ai_algorithm_ = default_ai;
 	init_ai_algorithm_combo();
 
 	// "Faction name" hack
Index: changelog
===================================================================
--- changelog	(revision 42516)
+++ changelog	(working copy)
@@ -45,6 +45,7 @@
    * made encampment and orc forts use regular dirt rather than a custom terrain
    * created new editor group: "embellishments", and added desert plants to that group
  * User interface:
+   * Added select the era AI by default if use_as_default property is set
    * Added the era AI in the list of AI shown when opening a game
    * Added dialog for installation of add-on dependencies
    * Removed the unused gui2 menu bar
@@ -74,6 +75,7 @@
    * Added new experimental list box implementation, available for testing
      with -DGUI2_EXPERIMENTAL_LISTBOX
  * WML Engine:
+   * Add a use_as_default property to the [ai] key when used inside [era]
    * Deprecated [set_variable]'s random key, use rand instead
    * Renamed [unit][status] healable to unhealable so it can default to 'no'
    * Added 'side X turn refresh' and 'side X turn Y refresh' events
